** leetcode-283(移動零)**
基礎寫法:
class
solution
//設定指標i j
//遍歷nums[i] 當nums[i]!=0 即當值不為0時 nums[j]=nums[i];j++;
int j =0;
for(
int i=
0;i++i)
}//可以使i j指標同時向右移 只有當nums[i]!=0 j才移動 造成j指標是慢的一方 所有0遍歷完後 陣列中》j&&for
(int i=j;i
++i)
}}
優化
class
solution
//優化之處在於只進行一次迴圈,邊迴圈的同時移動i j指標 當數非0時賦給nums[j]
int j =0;
for(
int i =
0; i < nums.length; i ++
) j ++;}}}}
精簡
public
void
movezeroes
(int
nums)
while
(insertpos < nums.length)
}
leetcode-11(盛最多水的容器)
class
solution
else
}return ans;
}}
leetcode-70(爬樓梯)
class
solution
int[
] a=
newint
[n+1];
a[0]
=0; a[1]
=1; a[2]
=2;for
(int i=
3;i<=n;i++
)return a[n];}
}
leetcode-1(兩數之和)
class
solution;}
map.
put(nums[i]
,i);
}throw
newillegalargumentexception
("no two sum solution");
}}
leetcode-15(三數之和)
leetcode-66(加一)
class
solution
//特殊情況 例如當digits=9999
//則需要手動再擴大陣列 將digits[0]=1
digits=
newint
[digits.length+1]
; digits[0]
=1;return digits;
}}
leetcode-24(兩兩交換鍊錶中的結點)
/**
* definition for singly-linked list.
* public class listnode
* }*/class
solution
//建立兩個中間結點
listnode first=head;
listnode second=head.next;
//交換過後first.next=second.next
first.next=
(second.next)
;//而second.next指向first
旋轉陣列
class
solution
public
void
reserve
(int
nums,
int start,
int end)
}}
合併兩個有序鍊錶
//遞迴
class
solution
else
if(l2==null)
else
if(l1.val
else}}
//迭代
class
solution
else
prev=prev.next;
//沒獲取一次 移動一次
} prev.next=l1==null? l2:l1;
return prehead.next;
}}
合併兩個有序陣列
class
solution
else}}
}
//1.按列求
class
solution
}int max_right =0;
//找出右邊最高
for(
int j = i +
1; j < height.length; j++)}
//找出兩端較小的
int min = math.
min(max_left, max_right)
;//只有較小的一段大於當前列的高度才會有水,其他情況不會有水
if(min > height[i])}
return sum;}}
//2.雙指標
class
solution
else
++left;
}else
else
--right;}}
return ans;
}}
(此文章為自己學習記錄 沒有詳細的思路講解) 演算法,第一周
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1...
第一周訓練 E題
函式 f z zf z z 已知 f 1 f 2 f 1 f 2 的值,且對於任意 x 1x 1 有 f x 1 f x f x 1 sin x 2 f x 1 f x f x 1 sin x2 求 f n f n 的值。多組資料。資料組數 t 100 t 100 每組資料報含 3 3 個不超過 1...
pku 第一周訓練 模擬
給你一系列的左右括號的兩個表示方法,p和w.然後是有p向w轉換 pi表示第i個右括號前邊有幾個左括號 wi表示第i個右括號如果要找匹配的話,要找從後往前數幾個左括號與它匹配。include include include define maxn 25 using namespace std int ...