leetcode刷題(第一天)
1.two sum:
解法一:
function sum(arr,target){
var len = arr.length;
for(var i=0;i<len;i++){
for(var j=0;j<len;j++){
if(i!=j){
var sum = arr[i]+arr[j];
if(sum === target){
return [i,j];
}
}
}
}
}
解法二:(更優)
var twoSum = function(nums, target) {
let obj = [];
var arr = [];
for(let i = 0; i < nums.length; i++) {
let othNum = target - nums[i];
let othIndex = nums.indexOf(othNum);
if(othIndex != -1 && othIndex != i) {
arr.push( i, othIndex);
break;
}
}
return arr;
};
var arr = [2,7,3,5];
console.log(twoSum(arr,9));[0,1];
2.addTwoNumbers
陣列形式傳參:
[2,6,4] [5,4,3]
結果:
[7,0,8]
function ListNode(val) {
this.val = val;
this.next = null;
}
var addTwoNumbers = function(l1, l2) {
/* step() function recursively iterates through a ListNode linked list */
const step = (l1, l2, carry=0) => {
/* l1 or l2 can be null - double bang to cast to bool for null check */
const sum = (!!l1 ? l1.val : 0) + (!!l2 ? l2.val : 0) + carry
let listnode = new ListNode(sum)
/* if either l1.next exists or l2.next exists */
if ((!!l1 && !!l1.next) || (!!l2 && !!l2.next)) {
listnode.next = step(
!!l1 ? l1.next : null,
!!l2 ? l2.next : null,
sum > 9 ? 1 : 0
)
} else if (sum > 9) {
/* final carry */
listnode.next = new ListNode(1)
}
/* only keep LSD */
//這裡slice的目的是假如和是兩位數,保留各位,即使是一位數以可以保留個位(始終保留各位)
listnode.val = parseInt(listnode.val.toString().slice(-1))
return listnode;
}
return step(l2, l1)
};
相關推薦
leetcode刷題(第一天)
1.two sum: 解法一: function sum(arr,target){ var len = arr.length; for(var i=0;i<len;i++){ for(v
使用python刷Leetcode演算法題(第一週)
明年六月份開始找工作,因此從這周開始刷題,希望記錄一下刷題的過程,由於種種原因選擇了python進行刷題,我會在每週的週日記錄下本週在Leetcode中刷過的題,並附上程式碼以及心得,以作備忘。。。。。 Two Sum 第1題 英文描述:Given
leetcode 刷題(java版本)
1、leetcode 1 給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2
LeetCode刷題記錄(第一天)
Jewels and Stones原題目:You're given strings J representing the types of stones that are jewels, and S representing the stones you have. Eac
leetcode 刷題(1)--- 兩數之和
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0
leetcode 刷題(2)--- 兩數相加
nullptr solution 原因 == 表示 node etc 數字 個數字 給定兩個非空鏈表來表示兩個非負整數。位數按照逆序方式存儲,它們的每個節點只存儲單個數字。將兩數相加返回一個新的鏈表。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 示例: 輸
LeetCode刷題(Java)
第一題 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new HashMap<Integer, Integer>()
leetcode 刷題 (599)
最近在刷LeetCode,從簡單的開始刷起,補一下自己code和演算法基礎。 下面是dict方面的題目: 主要用到了dict兩個主要的屬性: ①enumerate() enumerate(sequence, [start=0]) sequence -- 一個序列、迭代器或其他支援
LeetCode刷題(三)
LeetCode 是個著名的程式設計題庫,裡邊有很多面試、演算法題目,多刷刷對提高程式設計水平很有幫助,避免因為天天寫業務程式碼而停滯不前。最近玩了下挺有意思的,決定慢慢的刷起來,在這裡記錄一下我的刷
LeetCode刷題(Python)——每個節點的右向指標
題目描述 給定一個二叉樹 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; } 填充它的每個 next 指標,讓這個指標指向其下一個右側節點。
使用python刷Leetcode演算法題(第二週)
第二週了。。。又刷了一週,這周明顯感覺刷起來更順了,加油!!!! Pascal’s Triangle 英文描述: Given numRows, generate the first numRows of Pascal’s triangle. 例子:
leetcode 刷題(python)之漢明距離
兩個整數之間的漢明距離指的是這兩個數字對應二進位制位不同的位置的數目。給出兩個整數 x 和 y,計算它們之間的漢明距離。注意:0 ≤ x, y < 231.示例:輸入: x = 1, y = 4輸出: 2解釋:1 (0 0 0 1)4 (0 1 0 0)↑ ↑上面的箭頭
LeetCode刷題(48)--Remove Duplicates from Sorted List II
cur表示當前所在的Node,對於重複出現的Node會移到最後一個。 pre記錄結果,res用於返回,pre的更改會體現在res上。 如果pre.next == cur,則說明沒有重複,此時pre = pre.next Node進入res; 否則,則重複,只是將pre.next 移到下
LeetCode刷題(46)--Search in Rotated Array
特別處理等於的情況 class Solution(object): def search(self, nums, target): """ :type nums: List[int] :type target: int
LeetCode刷題(50)--Word Search
DFS演算法 class Solution(object): def exist(self, board, word): """ :type board: List[List[str]] :type word: str
LeetCode刷題(49)--Minimum Window Substring
class Solution(object): def minWindow(self, s, t): """ :type s: str :type t: str :rtype: str """
開始在LeetCode上刷題(1-9)
因為兩週前,對繼續讀理論書有點抗拒,所以想找點可以直接動手做的事,後來就找到了LeetCode。 到目前在LeetCode上完成了前9道題。 比較考腦子,就算把功能完成了,但隨後LeetCode顯示的排名也會讓你想繼續想如何優化已經寫好的程式碼,往往優化
LeetCode刷題(二) —— 整數拆分
題目:給定一個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。 返回你可以獲得的最大乘積。例如,給定 n = 2,返回1(2 = 1 + 1);給定 n = 10,返回36(10 = 3 + 3 + 4)。注意:你可以假設 n 不小於2且不大於58。分析:
LeetCode 刷題(python) 之
移動零給定一個數組 nums, 編寫一個函式將所有 0 移動到它的末尾,同時保持非零元素的相對順序。例如, 定義 nums = [0, 1, 0, 3, 12],呼叫函式之後, nums 應為 [1, 3, 12, 0, 0]。注意事項:必須在原陣列上操作,不要為一個新陣列分
LeetCode刷題(二)
LeetCode 是個著名的程式設計題庫,裡邊有很多面試、演算法題目,多刷刷對提高程式設計水平很有幫助,避免因為天天寫業務程式碼而停滯不前。最近玩了下挺有意思的,決定慢慢的刷起來,在這裡記錄一下我的刷