給定乙個未經排序的整數陣列,找到最長且連續的的遞增序列。
思路:要找乙個最長且連續,關鍵是連續,那麼只要遍歷,發現不連續就歸零,記錄最大值即可。
class solution else
tmp = nums[i];
max_num = max_num < index ? index : max_num;
}return max_num;
}};
給定乙個無序的整數陣列nums,找到其中最長上公升子串行的長度。
思路:那要做怎麼新開乙個陣列array記錄上公升子串行,遍歷nums,當第i
ii個數大於array中最大數,那麼就把num
s[i]
nums[i]
nums[i
]新增到array中;否則,則在array中二分查詢,查詢大於num
s[i]
nums[i]
nums[i
]數的最小下標index,然後num
s[i]
nums[i]
nums[i
]替換arr
ay[i
ndex
]array[index]
array[
inde
x]。最後array陣列裡面元素的數目就是最長上公升子串行的長度。
class solution else
}return array.size();
}};
給定乙個整數陣列 nums ,找出乙個序列中乘積最大的連續子串行(該序列至少包含乙個數)。
思路:首先宣告乙個變數表示當前連續子串行的最大乘積product,然後再宣告兩個變數分別記錄當前的最大乘積值max_product和最小乘積值min_product,當遍歷到陣列第i
ii個元素時num
s[i]
nums[i]
nums[i
],將兩個變數分別與元素num
s[i]
nums[i]
nums[i
]相乘,新的乘積值和num
s[i]
nums[i]
nums[i
]相比較,值比較大的為新的max
_pro
duct
=max
(max
prod
uct∗
nums
[i],
nums
[i])
max\_product=max(max_product*nums[i], nums[i])
max_pr
oduc
t=ma
x(ma
xpr
oduc
t∗nu
ms[i
],nu
ms[i
]),值比較小的為新的min
_pro
duct
=min
(min
prod
uct∗
nums
[i],
nums
[i])
min\_product=min(min_product*nums[i], nums[i])
min_pr
oduc
t=mi
n(mi
npr
oduc
t∗nu
ms[i
],nu
ms[i
]),最後比較一下取max
(pro
duct
,max
prod
uct)
max(product, max_product)
max(pr
oduc
t,ma
xpr
oduc
t)作為新的product。如果num
[i
]num[i]
num[i]
為負數時,由於負數的性質,需要將最大乘積值max_product和最小乘積值min_product進行對換。
class solution
int min(int a, int b)
int longestcommonsubsequence(string text1, string text2)
max_num = max_num < index ? index : max_num;
}return max_num;
}};
LeetCode 6 有效的括號
題目如下 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5...
Z字型變換 LeetCode6
將乙個給定字串根據給定的行數,以從上往下 從左到右進行 z 字形排列。比如輸入字串為 leetcodeishiring 行數為 3 時,排列如下 l c i r e t o e s i i g e d h n 之後,你的輸出需要從左往右逐行讀取,產生出乙個新的字串,比如 lciretoesiiged...
leetcode 6 遞迴和回溯
leetcode相關題目 93 131 1 給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。leetcode 93 2 給定乙個字串 s,將 s 分割成一些子串,使每個子串都是回文串。leetcode 131 leetcode相關題目 46 47 1 給定乙個 沒有重複 數字的序列...