lintcode——計算最大值
給乙個字串型別的數字, 寫乙個方法去找到最大值, 你可以在任意兩個數字間加 + 或 *
您在真實的面試中是否遇到過這個題? yes
樣例 eg1:給出 str = 01231, 返回 10 ((((0 + 1) + 2) * 3) + 1) = 10 我們得到了最大值 10
eg2:給出 str = 891, 返回 73 因為 8 * 9 * 1 = 72 和 8 * 9 + 1 = 73, 所以73是最大值
這個題目的題意有一點點小問題,例如eg2:891,我如果是8*(9+1)等於80大於73啊,所以題目的意思應該是新增運算子之後,按照從左到右的順序計算數值,就是eg1的形式,自動新增小括號,那麼題目就變得簡單多了,利用dfs每呼叫一次,計算個數值,然後再次呼叫dfs就好了,直到str的末尾
class
solution
void dfs(const string &str, int
index,int ans)
dfs(str, index+1,str[index]-'0'+ans );
dfs(str, index+1, (str[index]-'0')*ans);
}};
計算最大值 LintCode
給乙個字串型別的數字,寫乙個方法去找到最大值,你可以在任意兩個數字間加 或 樣例 給出 str 01231,返回 10 0 1 2 3 1 10 我們得到了最大值 10 給出 str 891,返回 73 因為 8 9 1 72 和 8 9 1 73,所以73是最大值 思路 遍歷字串的每一位,轉化為數...
lintcode 滑動視窗的最大值
給出乙個可能包含重複的整數陣列,和乙個大小為 k 的滑動視窗,從左到右在陣列中滑動這個視窗,找到陣列中每個視窗內的最大值。樣例給出陣列 1,2,7,7,8 滑動視窗大小為k 3.返回 7,7,8 解釋 最開始,視窗的狀態如下 1,2 7 7 8 最大值為7 然後視窗向右移動一位 1,2,7,7 8 ...
滑動視窗的最大值 LintCode
給出乙個可能包含重複的整數陣列,和乙個大小為 k 的滑動視窗,從左到右在陣列中滑動這個視窗,找到陣列中每個視窗內的最大值。樣例 給出陣列 1,2,7,7,8 滑動視窗大小為 k 3.返回 7,7,8 解釋 最開始,視窗的狀態如下 1,2 7 7 8 最大值為 7 然後視窗向右移動一位 1,2,7,7...