劍指offer第二十九題【最小的K個數】c++實現
題目描述
輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。
方法比較多,我直接用的set,然後取前k個就行了
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { vector<int> res; if(input.empty()||k>input.size()){ return res; } set<int> s; for(int i=0;i<input.size();i++){ s.insert(input[i]); } set<int>::iterator it; int count=0; for(it=s.begin();count<k;count++,it++){ res.push_back(*it); } return res; }
相關推薦
劍指offer第二十九題【最小的K個數】c++實現
題目描述 輸入n個整數,找出其中最小的K個數。例如輸入4,5,1,6,2,7,3,8這8個數字,則最小的4個數字是1,2,3,4,。 方法比較多,我直接用的set,然後取前k個就行了 vector<int> GetLeastNumbers_Solution(vector<int>
劍指offer第二十四題【二叉樹中和為某一值的路徑】c++實現
題目描述 輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。 先序遍歷二叉樹,用一個數組記錄當前路徑,如果遍歷到葉子節點就進行判斷是否和給定值相等。 class Solution { public: vect
劍指offer第二十七題【字串的排列】c++實現
class Solution { public: vector<string> vec; bool isSwap(string str,int k,int i){ for(int j=k;j<i;j++){ if(str[j]==str
【劍指offer第十二題】數值的整數次方
題目描述 給定一個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。 public class Solution { public dou
【劍指offer第十五題】反轉連結串列
講的很好,有兩種方法 /* public class ListNode { int val; ListNode next = null; ListNode(int val
【劍指offer第十七題】樹的子結構
題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) /** public class TreeNode { int val = 0;
【Java】 劍指offer(10) 旋轉數組的最小數字
-c -i 提前 tle 更多 strong num string 測試 本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目 把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個遞增排
【Java】 劍指offer(45) 把數組排成最小的數
code .com stringbu print ide san blog int urn 本文參考自《劍指offer》一書,代碼采用Java語言。 更多:《劍指Offer》Java實現合集 題目 輸入一個正整數數組,把數組裏所有數字拼接起來排成一個數,打印
劍指offer:第10題求二進位制1的個數
public static int CountOne(int sr) { int count = 0; char [] c =Integer.toBinaryString(sr).toCharArray(); for (int i = 0; i
劍指offer第二版面試題48:最長不含重複字元的子字串(java)
題目描述: 請從字串中找出一個最長的不包含重複字元的子字串,計算該最長子字串的長度。假設字串中只包含從’a’到’z’的字元。例如,在字串中”arabcacfr”,最長非重複子字串為”acfr”,長度為
劍指offer Python版 - 旋轉陣列的最小數字
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非遞減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若陣列大小為0,請返回0
《劍指offer》系列 把陣列排成最小的數(Java)
連結 牛客:把陣列排成最小的數 題目描述 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 思路 1、全排列 求出陣列中所有數字的全排列
劍指 Offer - 6:旋轉陣列的最小數字
題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列 {3, 4, 5, 1, 2} 為 { 1, 2, 3, 4, 5 } 的一個旋轉,該陣列的最小值為1。 NOTE:給
[劍指offer] 10. 旋轉數組的最小數字
旋轉 n-2 public 個推 margin off title itl describe 題目描述 我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形,總共有多少種方法? 思路: 利用dp[i]保存蓋2*i的矩
劍指offer-06:旋轉陣列的最小數字
問題 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若陣列大小為0,請返回0。
劍指offer-32:把陣列排成最小的數
題目描述 輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這三個數字能排成的最小數字為321323。 思路 一開始我也以為是一個全排列的問題,後來看了下劍指offer發現作者有一個更好的實現方式
《劍指offer》系列 旋轉陣列的最小數字(Java)
連結 題目描述 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大
劍指offer:旋轉陣列中的最小數字(java)
/** * 題目: 把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 N
劍指offer之找出陣列中最小的n個數,之優先佇列
這道題最簡單的就是排序,時間複雜度O(nlogn)。不再講述。這裡可以使用優先佇列,時間複雜度O(nlogk)。注意檢驗k的合法性,不然初始化佇列時會報錯。import java.util.ArrayL
劍指offer-7.旋轉數組的最小數字
not tor types coder offer 我們 solution 旋轉數組 end 看起來不需要用二分法查找 --------------------------------------------------------- 時間限制:3秒 空間限制:327