問題
給定n個字串,請對n個字串按照字典序排列。
輸入描述:
輸入第一行為乙個正整數n(1≤n≤1000),下面n行為n個字串(字串長度≤100),字串中只含有大小寫字母。
輸出描述:
資料輸出n行,輸出結果為按照字典序排列的字串。
思路
看到字典序,哈哈哈,stl**好。。。
**
#include
#include
#include
using
namespace std;
intmain()
set::iterator it;
for(it=s.
begin()
;it!=s.
end();
++it)
cout<<
*it<}
問題
尋找峰值
峰值元素是指其值大於左右相鄰值的元素。
給定乙個輸入陣列 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素並返回其索引。
陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。
你可以假設 nums[-1] = nums[n] = -∞。
思路
log(n)的時間複雜度,提示使用二分法。要結合陣列的具體情況解決
**
o(n)解法:
class
solution
return nums.
size()
-1;}
};
o(logn)解法:
class
solution
return l;}}
;
ps:二分法這個邊界條件的確定是難點。。。預設nums[-1]和nums[len]都是負無窮,這個題確實需要特殊處理。
問題
求陣列的最大連續子串行
思路
dp**
int
greatestsum
(vector<
int> array)
// f(i)初始化, f(0) = array[0]
int sum = array[0]
;// maxsum初始化
int maxsum = array[0]
;for
(int i =
1; i < array.
size()
; i++
) sum =
(sum >0)
? sum + array[i]
: array[i]
;// 尋找全域性最大:maxsum = max( maxsum,f(i))
maxsum =
(sum < maxsum)
? maxsum : sum;
}return maxsum;
}
ps:這個**真的是相當精簡 每天一刷20200602
問題 寫出乙個程式,接受乙個正浮點數值,輸出該數值的近似整數值。如果小數點後數值大於等於5,向上取整 小於5,則向下取整。思路 其實就是實現乙個正浮點數的四捨五入,可以呼叫math.h中的round 函式直接完成,有點討巧。include include using namespace std in...
每天一刷20200603
問題 編寫乙個函式,計算字串中含有的不同字元的個數。字元在acsii碼範圍內 0 127 換行表示結束符,不算在字元裡。不在範圍內的不作統計。注意是不同的字元 思路 跟之前做過的乙個題相似,那個題是字串去重,稍作修改就行了。include include using namespace std in...
每天一刷20200605
昨天返校,沒有做題。問題 功能 等差數列 2,5,8,11,14 輸入 正整數n 0 輸出 求等差數列前n項和 返回 轉換成功返回 0 非法輸入與異常返回 1 思路 這個題其實就是簡單的等差數列求和,設定好初始項,然後控制好迴圈次數即可。ps 在處理輸入的時候要注意用while 來讀取輸入,不然提交...