1.三數之和:
給你乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?請你找出所有滿足條件且不重複的三元組。
注意:答案中不可以包含重複的三元組。
1.先判斷,如果陣列為空或者陣列長度小於3,則返回
2.對陣列進行排序
3.遍歷陣列y
如果nums[i]>0,則三數之和不可能為0;
重複元素跳過,避免重複三元組
令左指標為l=i+1,右指標r=n-1,當lclass
solution
arrays.
sort
(nums)
;//排序
for(
int i=
0;i)else
if(sum<
0) l++
;else
if(sum>
0) r--;}
}return ans;
}}
2.旋轉陣列
題目:給定乙個陣列,將陣列中的元素向右移動k個位置,其中k是非負數
示例:輸入:[1,2,3,4,5,6,7] k=3
輸出:[ 5,6,7,1,2,3,4]
思路:使用反轉
當我們旋轉陣列k次,k%n個尾部元素會被移動到頭部,剩下的元素會向後移動。在這個方法中,首先將所有元素反轉,如何反轉前k個元素再反轉後面n-k個元素,就能得到需要的結果
原始陣列: 1 2 3 4 5 6 7
反轉所有數字 7 6 5 4 3 2 1
反轉前k個數字 5 6 7 4 3 2 1
反轉後n-k個數字 5 6 7 1 2 3 4
class
solution
public
void
reverse
(int
nums,
int start,
int end)
}}
JS常見陣列操作
1 indexof判斷乙個陣列中某乙個元素是否存在,如果不存在返回 1 let i it arr.indexof 4 1 2 push向陣列中新增元素 arr.push 100 3 splice從陣列中刪除一些元素,插入一些元素 引數1 刪除的開始的索引的位置 引數2 刪除的數量 開始索引是刪除的起...
常見陣列幾道題目
基礎題目 參 public class test4 統計字元陣列中字母出現次數 printcount chararray public static void printcount char chararray 列印字母和次數 for int i 0,ch 97 i count.length i c...
常見陣列演算法小解
以下陣列皆採用 int arr 氣泡排序 相鄰兩個元素進行比較,每次選出乙個最大值放在最後面 for int i 0 i arr.length 1 i 2.選擇排序 每次選出乙個最小值放在最前面,假設第乙個是最小值依次與後面的數進行比較,如果碰到比假設最小值還小的數則進行交換,以此類推 for in...