原创 位操作-leetcode 78. Subsets

原題鏈接:Subsets 分析:求一個數組的全部子集,假設數組的長度爲n,可以確定的是子集個數爲2^n,如果要編號的話從0到2^n-1,這似乎對應着n位二進制的不同情況,那麼思路就來了,可以模擬0-2^n-1二進制對應這數組中不同位置的

原创 鏈表-leetcode 86 Partition List

原題鏈接:Partition List 題解: /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode

原创 位操作-leetcode 476. Number Complement

原題鏈接:Number Complement 題解: class Solution { public: int findComplement(int num) { long int flag=1; long

原创 leetcode 434- Number of Segments in a String

原題鏈接:Number of Segments in a String 分析:題目比較簡單,求非空字符的片段數,只需要判斷s[i]!=' '&&s[i+1]==' '就可以;代碼如下: class Solution { public:

原创 位操作-leetcode 338 Counting Bits

原題鏈接:Counting Bits 題解: class Solution { public: vector<int> countBits(int num) { /* i的1的個數等於i>>1+

原创 位操作-leetcode 136. Single Number

原題鏈接:Single Number 分析:每個元素都出現了兩次除了一個(好悽慘,就像一對一對的情侶中只有一條單身狗),現在要找出這條單身狗,哦不,這一個單獨的數Single Number.  注意到,任何兩個相同的整數 異或 的結果爲

原创 位操作-leetcode 268 Missing Number

原題鏈接:Missing Number 思路:這道題我的做法是,判斷邊界條件,求最大值,最小值,如果最小值不是0,直接返回0。否則,從0開始到最大值累積異或。然後將異或值和nums中的每一個元素異或,得出結果。 題解: class S

原创 鏈表-leetcode 83 Remove Duplicates from Sorted List

原題鏈接:Remove Duplicates from Sorted List 分析:因爲鏈表已經是有序的,所以重複的值都會集中在一起,所以直接遍歷,刪除重複值就行。 題解: /** * Definition for singly-

原创 字符串-leetcode 72 Edit Distance

原題鏈接:Edit Distance 分析:這是一個編輯距離的問題,在編程之美上也有這道題,做法比較簡單的可以想到遞歸的思路,然而會發現遞歸的思路複雜度太高,是指數級,轉而也比較容易想到動態規劃的思想優化複雜度,具體代碼如下: clas

原创 鏈表-leetcode 138. Copy List with Random Pointer

原題鏈接:Copy List With Random Pointer 題解: /** * Definition for singly-linked list with a random pointer. * struct Rand

原创 位操作-leetcode 371 Sum or Two Integers

原題鏈接:Sum of Two Integers 分析:實現加號運算符,採用的是位操作,分三步: 第一步a^b得到一個值res 第二步(a&b)<<1得到一個值表示進位 第三步,如果有進位表示res還需要加上進位的值,否則res就是最終

原创 位操作 leetcode 260. Single Number III

原題鏈接:SIngle Number III 題解: class Solution { public: vector<int> singleNumber(vector<int>& nums) { /*

原创 leetcode 169. Majority Element

原題鏈接:Majority Element 題解(二逼版): class Solution { public: int majorityElement(vector<int>& nums) { /*

原创 鏈表-leetcode 25 Reverse Nodes in k-Group

原題鏈接:Reverse Nodes in K-Group 分析:這道題其實並不難,只是題目限制了很多空間,限制不能交換值,只能交換節點,限制了只能使用constant的空間,所以使用輔助棧的方式的做法不符合題意,當然用了也是可以Acc

原创 字符串-leetcode 521 Longest Uncommon Subsequence I

原題鏈接:Longest Uncommon Subsequence I 題解如下: class Solution { public: int findLUSlength(string a, string b) {