LeetCode C 刷題 53 56題題解

2021-10-08 18:26:24 字數 2496 閱讀 9773

給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和。

示例:輸入: [-2,1,-3,4,-1,2,1,-5,4]

輸出: 6

解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。

高階:如果你已經實現複雜度為 o(n) 的解法,嘗試使用更為精妙的分治法求解。

1、雙指標法

2、動態規劃

class solution 

// i += 1;

// }

// return result;

//2、動態規劃

int result = nums[0];

int pre = 0;

for(auto num:nums)

return result;

}};

給定乙個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回矩陣中的所有元素。

示例 1:

輸入:[

[ 1, 2, 3 ],

[ 4, 5, 6 ],

[ 7, 8, 9 ]

]輸出: [1,2,3,6,9,8,7,4,5]

示例 2:

輸入:[

[1, 2, 3, 4],

[5, 6, 7, 8],

[9,10,11,12]

]輸出: [1,2,3,4,8,12,11,10,9,5,6,7]

模擬

class solution 

int m = matrix[0].size();

int steps = n * m;

int top = 0;

int left = 0;

int bottom = m;

vector> flag(n, vector(m, 0));

int right = n;

while(steps > 0)

j--;

i ++;

top += 1;

while(i < n && !flag[i][j])

i--;

j --;

right -= 1;

while(j >= left && !flag[i][j])

j ++;

i --;

bottom -= 1;

while(i >= top && !flag[i][j])

left += 1;

}return result;

}};

給定乙個非負整數陣列,你最初位於陣列的第乙個位置。

陣列中的每個元素代表你在該位置可以跳躍的最大長度。

判斷你是否能夠到達最後乙個位置。

示例 1:

輸入: [2,3,1,1,4]

輸出: true

解釋: 我們可以先跳 1 步,從位置 0 到達 位置 1, 然後再從位置 1 跳 3 步到達最後乙個位置。

示例 2:

輸入: [3,2,1,0,4]

輸出: false

解釋: 無論怎樣,你總會到達索引為 3 的位置。但該位置的最大跳躍長度是 0 , 所以你永遠不可能到達最後乙個位置。

貪心

class solution else if(max_pos < i)

}if( max_pos >= n - 1)

return false;

}};

給出乙個區間的集合,請合併所有重疊的區間。

示例 1:

輸入: [[1,3],[2,6],[8,10],[15,18]]

輸出: [[1,6],[8,10],[15,18]]

解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

示例 2:

輸入: [[1,4],[4,5]]

輸出: [[1,5]]

解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。

排序+依次合併

class solution ;

}sort(intervals.begin(), intervals.end());

int n = intervals.size();

int m = intervals[0].size();

vector> result;

result.push_back(intervals[0]);

int j = 0;

for(int i = 1; i < n; i ++)else

}return result;

}};

LeetCode C 刷題 13 16題題解

羅馬數字包含以下七種字元 i,v,x,l,c,d 和 m。字元 數值 i 1 v 5 x 10 l 50 c 100 d 500 m 1000 例如,羅馬數字 2 寫做 ii 即為兩個並列的 1。12 寫做 xii 即為 x ii 27 寫做 xxvii,即為 xx v ii 通常情況下,羅馬數字中...

LeetCode C 刷題 69 72題題解

實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去。二分 clas...

LeetCode C 刷題129 132題題解

目錄 129 求根到葉子節點數字之和 題目 題解 130 被圍繞的區域 題目 題解 131 分割回文串 題目 題解 132 分割回文串ii 題目 題解 給定乙個二叉樹,它的每個結點都存放乙個 0 9 的數字,每條從根到葉子節點的路徑都代表乙個數字。例如,從根到葉子節點路徑 1 2 3 代表數字 12...