和為s的兩個數(shù)
要求數(shù)組要排序
public class Main{
class Point{
int x;
int y;
Point(int x1,int y1){
x=x1;
y=y1;
}
void print(){
System.out.println(x+" "+y);
}
}
public Point twoNumberSum(int []a,int sum){
int i=0;
int j= a.length-1;
while(i<j){
if((a[i]+a[j])==sum){
System.out.println(a[i]+" "+a[j]);
return new Point(a[i],a[j]);
}else if((a[i]+a[j])>sum){
j--;
}else{
i++;
}
}
return null;
}
public static void main(String... arg) {
Main main = new Main();
main.twoNumberSum(new int[]{1,2,5,7,9}, 7);
}
}
和為s的連續(xù)的正整數(shù)
小明很喜歡數(shù)學(xué),有一天他在做數(shù)學(xué)作業(yè)時,要求計算出9~16的和,他馬上就寫出了正確答案是100喧兄。但是他并不滿足于此,他在想究竟有多少種連續(xù)的正數(shù)序列的和為100(至少包括兩個數(shù))无畔。沒多久,他就得到另一組連續(xù)正數(shù)和為100的序列:18,19,20,21,22。現(xiàn)在把問題交給你,你能不能也很快的找出所有和為S的連續(xù)正數(shù)序列? Good Luck!
import java.util.ArrayList;
public class Solution {
ArrayList<ArrayList<Integer> > list = new ArrayList<ArrayList<Integer>>();
public void numberSeqSum(int sum){
if(sum==0) System.out.println("no");
int small = 1;
int big = 2;
int mid = (sum+1)/2;//至少兩個數(shù)
int total = small+big;
while(small<mid&&small<big){
if(total==sum){
ArrayList<Integer> l = new ArrayList<Integer>();
for(int i=small;i<=big;i++){
l.add(i);
}
list.add(l);
//System.out.println(small+" "+big);
big++;
total = total+big;
}else if(total < sum){
big++;
total = total + big;
}else{
total = total - small;
small++;
}
}
}
public ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) {
if(sum==1||sum==2) return list;
numberSeqSum(sum);
return list;
}
}
刪除鏈表中重復(fù)的結(jié)點
在一個排序的鏈表中吠冤,存在重復(fù)的結(jié)點浑彰,請刪除該鏈表中重復(fù)的結(jié)點,重復(fù)的結(jié)點不保留拯辙,返回鏈表頭指針郭变。 例如,鏈表1->2->3->3->4->4->5 處理后為 1->2->5
public class Solution {
public ListNode deleteDuplication(ListNode pHead)
{
ListNode p = new ListNode(123);
p.next=pHead;
ListNode head = pHead;
ListNode last = p;
while(head!=null){
if(head.next!=null&&head.val!=head.next.val){
last = head;
head = head.next;
}else if(head.next==null){
break;
}else{
while(head.next!=null&&head.val==head.next.val){
head = head.next;
}
last.next=head.next;
head = head.next ;
}
}
return p.next;
}
}