9.回文數
判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121
輸出: true
思路一:
第一反應轉為字串,遍歷字串首尾是否相等。
class solution
} return true;
}}
也可以使用字串反轉比較
class solution else
}}
思路二:
反轉一半數字
class solution
int revertednumber = 0;
while(x > revertednumber)
return x == revertednumber || x == revertednumber/10;
}}
尋找陣列的中心索引
輸入:nums = [1, 7, 3, 6, 5, 6]
輸出: 3
解釋:索引3 (nums[3] = 6) 的左側數之和(1 + 7 + 3 = 11),與右側數之和(5 + 6 = 11)相等。
同時, 3 也是第乙個符合要求的中心索引。
思路一:
以分割點下標對陣列進行迭代,分別計算兩端陣列和。
class solution
else if(nums[i]>last)
last=nums[i];
}if(max>=2*last) else
}}
加一
給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。
最高位數字存放在陣列的首位, 陣列中每個元素只儲存乙個數字。
你可以假設除了整數 0 之外,這個整數不會以零開頭。
示例 1:
輸入: [1,2,3]
輸出: [1,2,4]
解釋: 輸入陣列表示數字 123。
思路一:
從最後一位按位迭代,如果為9則迭代進製。
class solution else
} int res=new int[len+1];
res[0]=1;
return res;
}}
楊輝三角
輸入: 5
輸出:[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]思路一:
從第3行開始,除首尾元素外,每個元素是上行依次兩個元素的和。
class solution
if(lenb>=0)
sum=tmp/2;
} if(sum!=0)
string re=res.reverse().tostring();
return re;
}}
實現strstr()
給定乙個 haystack 字串和乙個 needle 字串,在 haystack 字串中找出 needle 字串出現的第乙個位置 (從0開始)。如果不存在,則返回 -1。
示例 1:
輸入: haystack = 「hello」, needle = 「ll」
輸出: 2
思路一:迭代,設定flag跳出。
class solution
if(strs.length==1)
int min = strs[0].length();
for(int i=1;istrs[i].length())
min=strs[i].length();
} int i=1;
boolean flag = true;
for (i = 1; i <= min; i++)
} if (flag == false) else
}if (flag == true && i==min)
} return res;
}}
反轉字串
編寫乙個函式,其作用是將輸入的字串反轉過來。
示例 1:
輸入: 「hello」
輸出: 「olleh」
思路一:雙向指標
轉成字元陣列,首尾兩指標向里迭代。
class solution
}
拓展:
句子中單詞反轉。
例如:輸入:「student. a am i」
輸出:「i am a student.」
思路一:反轉兩次
public class solution
return sb.tostring();
}}
陣列拆分 i
給定長度為 2n 的陣列, 你的任務是將這些數分成 n 對, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得從1 到 n 的 min(ai, bi) 總和最大。
示例 1:
輸入: [1,4,3,2]
輸出: 4
解釋: n 等於 2, 最大總和為 4 = min(1, 2) + min(3, 4).
思路一:排序後只對偶數求和。
class solution
else if(t移除元素
給定乙個陣列 nums 和乙個值 val,你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。
不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o(1) 額外空間的條件下完成。
元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。
示例 1:
給定 nums = [3,2,2,3], val = 3,
函式應該返回新的長度 2, 並且 nums 中的前兩個元素均為 2
你不需要考慮陣列中超出新長度後面的元素。
思路:快慢指標
class solution else if(nums[j] ==0)
break;
}if(tmp>count)
} return count;
}}
思路二:
一次迭代,如果為1則加一,為0儲存最大值,計數為0重新計數。
class solution
} return math.max(count, max);
}}
leetcode刷題筆記 2
給出兩個 非空 的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照 逆序 的方式儲存的,並且它們的每個節點只能儲存 一位 數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 ...
Leetcode刷題日記2
回文數 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋 ...
LeetCode刷題經驗2
以下文字 自 leetcode 100 斬!從第 1 題開始,到現在也差不多快一年了,回顧紀念一下。為什麼開始刷題?從大一就知道了 leetcode,但刷題總是三天打魚,兩天曬網,會發現刷過的題,隔一段時間再看還是需要很久才能再想起來,於是就萌發了刷一題總結一題的想法。另一方面,leetcode 上...