問題
題目描述
輸入乙個int型整數,按照從右向左的閱讀順序,返回乙個不含重複數字的新的整數。
輸入描述:
輸入乙個int型整數
輸出描述:
按照從右向左的閱讀順序,返回乙個不含重複數字的新的整數
示例1輸入
9876673
輸出37689
思路
將輸入整數的每一位通過不斷整除、取餘的方式拿出來,然後用乙個0-9的陣列作為雜湊表來記錄它出現的次數,做相應的處理即可
解法
#include
#include
using
namespace std;
intmain()
cout<
}return0;
}
most votes solution
253986e66d114d378ae8de2e6c4577c1?f=discussion
#include
using
namespace std;
intmain()
;int num=0;
cin>>n ;
while
(n) n/=10
;}cout<
return0;
}二分查詢
成功的二分查詢的3個部分
預處理–如果集合未排序,則進行排序。
二分查詢–使用迴圈或者遞迴在每次比較後將查詢空間劃分為兩半。
後處理–在剩餘空間中確定可行的候選者。
a 二分查詢模板 1
int
binarysearch
(vector<
int>
& nums,
int target)
else
if(nums[mid]
< target)
else
}// end condition: left > right
return-1
;}問題
實現 int sqrt(int x) 函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4
輸出: 2
示例 2:
輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842…,
由於返回型別是整數,小數部分將被捨去。
由於 x 平方根的整數部分ans 是滿足 k^2 ≤x 的最大 k 值,因此我們可以對 k 進行二分查詢,從而得到答案。
用牛頓迭代法也可以解決。
**
class
solution
else
}return ans;}}
;
拓展在字串source中查詢字串t,如果存在的話返回t開始的下標,如果不存在的話返回-1。裡面還有getline()函式的實現
#include
#define maxline 1000
//最大輸入行長度
intgetline
(char line,
int max)
;int
strindex
(char source,
char searchfor)
;char pattern=
"abc"
;//待查詢的模式
intmain()
}printf
("%d\n"
, found)
;return found;
}int
getline
(char s,
int lim)
intstrindex
(char s,
char t)
return-1
;}
vc++6.0測例:
每天一刷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 來讀取輸入,不然提交...