example
輸入:698592 k = 4
輸出 :6592
solution:一種比較常見的思路是列舉全部k=4的數字,然後再取最小值,然而這樣複雜度會很高。本文的思路是不斷遞迴求得最小值,注意邊界,可以顯著降低複雜度。
void find_min_core(vector
vec, int k, int start, int end, vector
& result)
}result.push_back(min_value);
find_min_core(vec,k-1,start,end+1,result);
}}vector
find_min(vector
vec, int k)
example
輸入:str1:123456789 str2:987654321
輸出 :121932631112635269
solution:
(1)數字字串轉換為數字陣列
(2)模擬計算,注意進製,累加操作
#include
#include
#include
#include
#include
using
namespace
std;
void output_vec(vector
vec)
cout
<< endl;
}}vector
convert_int_string_to_vector(string str)
return vec;
}vector
big_data_multiply(vector
str1, vector
str2)
if(carry > 0)
result[i+j] += carry;
}int size;
for (size = 0; size < result.size(); size++)
result.resize(size);
reverse(result.begin(),result.end());
return result;
}int main()
函式呼叫棧比較有意思
昨天和海洋一塊研究了下函式呼叫棧,順便寫兩句。不足或錯誤之處請包涵!理解呼叫棧最重要的兩點是 棧的結構,ebp暫存器的作用。首先要認識到這樣兩個事實 2 幾乎所有本地編譯器都會在每個函式體之前插入類似如下指令 push ebp mov ebp esp 棧底方向,高位位址 引數3 引數2 引數1 返回...
函式呼叫棧比較有意思
理解呼叫棧最重要的兩點是 棧的結構,ebp暫存器的作用。首先要認識到這樣兩個事實 2 幾乎所有本地編譯器都會在每個函式體之前插入類似如下指令 push ebp mov ebp esp 棧底方向,高位位址 引數3 引數2 引數1 返回位址 上一層 ebp ebp push ebp mov ebp es...
函式呼叫棧比較有意思
昨天和海洋一塊研究了下函式呼叫棧,順便寫兩句。不足或錯誤之處請包涵!理解呼叫棧最重要的兩點是 棧的結構,ebp暫存器的作用。首先要認識到這樣兩個事實 2 幾乎所有本地編譯器都會在每個函式體之前插入類似如下指令 push ebp mov ebp esp 棧底方向,高位位址 引數3 引數2 引數1 返回...