「不重複數」問題

2021-07-30 00:10:43 字數 578 閱讀 5772

1、如果乙個數字十進位制表達時,不存在連續兩位相同,則稱之為「不重複數」。例如,105、1234、12121都是不重複數,而11、100、1225不是。給定乙個正整數a,返回大於a的最小不重複數。a小於100000.

示例:輸入:value =21099 返回:21201

本題的難點不在於判斷是否是不重複數,而在於輸出大於a的最小不重複數。

特別考慮集中情況:1、99、999、9999等

2、199、299、399等

基本思想:通過遞迴迴圈判斷是不是「不重複數」,若是,則相同的部分低位加1,再迴圈判斷,最後輸出大於a的最小不重複數;若不是,則直接輸出。

void fun(int a,int

size)

else

}}

if(flag==0)

printf("%d\n",n);

}}void q5()

while(m)

if(size1==size2)

else fun(b,size2);

}}int main()

不重複數字

operatorname luogup 4305 給定 n nn 個數,要求把其中重複的去掉,只保留第一次出現的數。本題有多組資料。第一行乙個整數 t tt 表示資料組數。對於每組資料 第一行乙個整數 n nn 第二行 n nn 個數,表示給定的數。對於每組資料,輸出一行,為去重後剩下的數,兩個數之...

不重複數字 unordered map

據說這道題加強了資料,卡普通雜湊,多模數雜湊,普通map,set 這時候就要祭出我們的大殺器 unordered map 定義和用法與普通map基本相同,只不過它的查詢是o 1 的 它的實現就是雜湊表 而普通map是o logn 的,那麼這道題就迎刃而解了 另 它還有個兄弟 unordered se...

今天的輸出不重複數

int a 10 bool ifcx 10 用於判斷數字是否出現過 int n 10 int ku new int n 用於存放出現過的數字 for int i 0 i 10 i 第一條給陣列變數賦值,第二條可不寫 全域性中的bool陣列變數初始為false for int i 0 ifor int...