位元組筆試 previous permutaion

2021-10-08 10:38:18 字數 1064 閱讀 1537

輸入乙個整數n,把這個數的每一位的數拆開(個十百千位的數), 組合成

另乙個數,另外組合的數算作乙個集合{},找出比n小,但是集合中最

大的乙個數輸出。

比如15234這個數, 可以拆成12345,然後組合的數要比15234小,但是

又是集合中最大的乙個。

如果不存在,輸出not found

輸入描述:

十進位制整數n,長度小於100位

輸出描述:

集合中最大數m。如果不存在,輸出not found。 注意大小寫

示例1輸入輸出示例僅供除錯,後台判題資料一 般不包含示例

輸入153

輸出135

示例2輸入輸出示例僅供除錯,後台判題資料一 般不包含示例

輸入輸出

not found

/*功能:*/

#includeusing namespace std;

vectorpreviouspermuation(vector&nums) ;

}int i = 0;

// 從右向左遍歷,找到第乙個比當前值大的,然後從這個位置向後找比它小但是最接近的值,交換,

// 然後後面的資料要從大到小排列

for (i = nums.size() - 1; i >= 1; --i)

}// 交換

swap(nums[i-1], nums[flag]);

// i --> end(),降序排列

// 區域性氣泡排序

for (int k = i; k < nums.size(); k++) }}

break;}}

if (i == 0)

return nums;

}int main()

vectorres = previouspermuation(vec);

string ans = "";

for(auto i : res)

if(n == ans || ans > n)

cout<< ans<< endl;

return 0;

}

位元組飛書 c 筆試

a int j for j in input split if j i 0j len a 1 b while i j while a i 1 a i i i 1 while a j 1 a j j j 1 if a i a j i i 1 j j 1 elif a i 題目描述 山形陣列定義如下 一...

多益筆試 位元組對齊

struct p p 0x1000000 p 0x200 unsigned long p 0x200 unsigned char p 0x200 分析 本題考察位元組對齊 來了解一下位元組對齊 struct aa char a int b char c aa sizeof aa 12 1 4 1 注...

位元組跳動資料探勘筆試

題型 單選7道,不定項3道,程式設計3道 單選涉及linux,sql 1.怎麼解決資料傾斜 增加reduce的個數,重新設計key,有一種方案是在map階段時給key加上乙個隨機數,有了隨機數的key就不會被大量的分配到同一節點,待到reduce後再把隨機數去掉即可。使用combinner合併,co...