LeetCode初級演算法刷題記錄

2021-10-09 02:00:16 字數 2386 閱讀 3270

1、刪除排序陣列中的重複項。給定乙個排序陣列,你需要在 原地 刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o(1) 額外空間的條件下完成。

class

solution

int i =0;

for(

int j =

1; j < nums.length; j++)}

system.out.

println

("陣列長度:"

+(i+1)

);return i+1;

}}

2、旋轉陣列。給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。

class

solution

int t =0;

while

(k >0)

k--;}

}}

3、存在重複元素。給定乙個整數陣列,判斷是否存在重複元素。如果任意一值在陣列**現至少兩次,函式返回 true 。如果陣列中每個元素都不相同,則返回 false 。

class

solution

}return

false;}

}

4、只出現一次的數字。給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

class

solution

return ans;

}}

5、兩個陣列的交集。給定兩個陣列,編寫乙個函式來計算它們的交集。

class

solution

hashmap

map =

newhashmap

();for

(int num :nums1)

int[

] insertarray =

newint

[nums1.length]

;int index =0;

for(

int num : nums2)

else}}

return arrays.

copyofrange

(insertarray,

0, index);}

}

6、加一。給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。

最高位數字存放在陣列的首位, 陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。

class

solution

} digits =

newint

[digits.length +1]

; digits[0]

=1;return digits;

}}

7、移動零。給定乙個陣列 nums,編寫乙個函式將所有 0 移動到陣列的末尾,同時保持非零元素的相對順序。

class

solution

}while

(index < nums.length)

}}

8、兩數之和。給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。

class

solution;}

map.

put(nums[i]

,i);

}throw

newillegalargumentexception

("no two sum solution");

}}

9、旋轉影象。給定乙個 n × n 的二維矩陣表示乙個影象。將影象順時針旋轉 90 度。

class

solution

int rowstart =0;

int colstart =0;

int rowend = matrix.length -1;

int colend = matrix[0]

.length -1;

while

(rowstart < rowend)

}public

void

rot(

int[

] m,

int rowstart,

int colstart,

int rowend,

int colend)

}}

leetcode刷題記錄

我覺得每天來兩道,練習練習,再看看人家是怎麼優化的。1.給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。c 暴力求解,204ms,9.1m class solution for index,num in enumerate ...

LeetCode刷題記錄

動態規劃和貪心演算法的異同點 class solution throw newruntimeexception 時間複雜度 o n 2 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所對應的目標元素,這將耗費 o n o n 的時間。因此時間複雜度為 o n 2 需要一種方法,尋找符合要求的元...

leetcode刷題記錄

工作之餘刷刷題排解下寂寞 1 面試題66.構建乘積陣列 解題思路 題目要求可以簡化為求陣列中任意乙個元素左右兩邊所有元素的乘積。偷懶就用了乙個套路,練習了p c c python class solution def constructarr self,a list int list int 除法是...