ac**
72. 編輯距離
198. 打家劫舍
213. 打家劫舍 ii
516. 最長回文子串行
674. 最長連續遞增序列
題目鏈結
class
solution}}
return result;
}bool
ispalindrome
(string s)
}return
true
;//判斷完是回文串}}
;
參考解答
class
solution
string result(""
);int ssize =
int(s.
size()
);string reverses=s;
reverse
(reverses.
begin()
, reverses.
end())
; vector<
int>
tmpvec
(ssize,0)
; vectorint>>
store
(ssize,tmpvec)
;int maxlength =
0, end =0;
for(
int i=
0;i)else}if
(store[i]
[j]>maxlength)}}
} result = s.
substr
(end+
1-maxlength, maxlength)
;return result;}}
;
class
solution
string result(""
);int ssize=
int(s.
size()
);vector<
bool
>
store
(ssize,
false);
int start=
0,end=
0, maxlen=0;
for(
int j=
0;j} result=s.
substr
(start, end-start+1)
;return result;}}
;
編輯距離
題解
class
solution
for(
int j=
0;j1;j++
)//計算所有的dp值
for(
int i =
1;i< n+
1;i++
) d[i]
[j]=
min(left,
min(down, left_down));
}}return d[n]
[m];}}
;
題目鏈結
參***
class
solution
int size=nums.
size()
;if(size==1)
//動態規劃找出通式
vector<
int> dp=vector<
int>
(size,0)
; dp[0]
=nums[0]
; dp[1]
=max
(nums[0]
,nums[1]
);for(
int i=
2;i)return dp[size-1]
;}};
題目鏈結
分析
class
solution
else
if(n<4)
int dp[n][2
];//邊界情況
dp[0]
[0]=
0;//沒偷第0家,偷到前0家的最大金額為0;
dp[0]
[1]=nums[0]
;//有偷第0家,偷到前0家的最大金額為nums[0];
dp[1]
[1]=nums[0]
;//有偷第0家,偷到前0家的最大金額為nums[0]
dp[1]
[0]=nums[1]
;//沒偷第0家,偷到前1家的最大金額為nums[1]
for(
int i=
2;i)else
}//返回兩種偷法中金額較大的一種
return
max(dp[n-1]
[0],dp[n-1]
[1])
;}};
題目鏈結
題解
class
solution
else}}
return f[0]
[n-1];
}};
題目鏈結
class
solution
else
len=1;
}}if(len>max) max=len;
//連續遞增的時候
return max;}}
};
leetcode02 兩數相加
隨機一題 給定兩個非空鍊錶來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回乙個新的鍊錶。你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8 原因 342 465 807 思路 剛開始很蠢的我居然乙個乙個讀...
LeetCode 02 兩數相加
definition for singly linked list.class listnode def init self,x self.val x self.next none class solution def addtwonumbers self,l1 listnode,l2 listno...
leetcode 02 兩數相加
leetcode題目鏈結 題目要求 個鍊錶 逆序表示十進位制樹,按位數 兩兩相加。這題 我的的思路就是從個位慢慢往上加 如果加起來的值超過10,就要進製,新建節點的值為1。class solution def addtwonumbers self,l1 listnode,l2 listnode li...