Leetcode 常見陣列題型

2021-10-04 16:38:42 字數 1055 閱讀 3899

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...