leetcode 學習之路

2021-10-20 01:38:21 字數 995 閱讀 1647

給你兩個非空的鍊錶,表示兩個非負的整數。它們每位數字都是按照 逆序 的方式儲存的,並且每個節點只能儲存 一位 數字。請你將兩個數相加,並以相同形式返回乙個表示和的鍊錶。你可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。

輸入:l1 = [2,4,3], l2 = [5,6,4]

輸出:[7,0,8]

解釋:342 + 465 = 807

輸入:l1 = [0], l2 = [0]

輸出:[0

輸入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]

輸出:[8,9,9,9,0,0,0,1]

從題目描述來看這道題考察對於鍊錶的操作,演算法思想相對簡單,主要是基於鍊錶的遍歷操作來實現加法,在時間複雜度為o(n

)o(n)

o(n)

的情況下就可以完成。不過這道題需要注意一些實現細節:

sum=num1+num2+flag;
/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

if(first!=null&&second==null)}if

(first==null&&second!=null)}if

(flag==

1) temp.next=

newlistnode(1

);return result.next;

}}

在遍歷鍊錶的while迴圈中我使用&&在控制迴圈條件,導致在共同迴圈結束之後需要分別判斷兩個鍊錶是否遍歷完成,導致**比較冗長,讀者可以考慮在while迴圈中使用||控制迴圈條件該如何解決這個問題。

Leetcode 學習之路

給定乙個整數陣列 nums 和乙個整數目標值 target,請你在該陣列中找出 和為目標值 的那 兩個 整數,並返回它們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,陣列中同乙個元素不能使用兩遍。你可以按任意順序返回答案。輸入 nums 2,7,11,15 target 9 輸出 0,1 解...

leetcode 自由之路

leetcode每日一題 這應該就是個廣度優先搜尋的實現,具體操作方法就是每次找到下一步的能到達的所有點,因為有重合,可以篩選一部分 我可能寫的比較亂,也可能有其他解決方法,但是我有點懶了 public intfindrotatesteps string ring,string key 開始遍歷ke...

LeetCode 菜鳥成長之路

給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。示例...