尋找丟失的數 II LintCode

2021-08-10 07:47:46 字數 831 閱讀 5225

給乙個由 1 - n 的整數隨機組成的乙個字串序列,其中丟失了乙個整數,請找到它。

注意事項:

n <= 30

樣例:

給出 n = 20, str = 19201234567891011121314151618

丟失的數是 17 ,返回這個數。

思路:

回溯法,進行判斷時,構建visited,來存放數字是否出現過,

若當前的位置小於字串的大小,

判斷此位置,若為『0』,返回-1;

再分別考慮數字是1位或者2位的情況,

若當前位置達到了字串大小,找到沒有出現的數字,若數字數目等於一,返回這個數字,

否則,返回-1。

#ifndef c570_h

#define c570_h

#include

#include

#include

using

namespace

std;

class solution

int find(int n, int pos, string &str, vector

visited)

if (res.size() == 1)

return res[0];

else

return -1;

}if (str[pos] == '0')//數字劃分錯誤

return -1;

for (int j = 1; j < 3; ++j)//考慮個位與兩位數的情況

}return -1;

}};#endif

CI5 7 尋找丟失的數

乙個整形陣列a 1.n 包含0 n中的n個數,有乙個數丟失。規定不可以通過a i 獲取對應的整數,可以使用的唯一的操作是fetch i,j 該函式表示獲得a i 的第j個bit的值 即二進位制形式中的第j個bit 假定fetch i,j 的操作是常數的,如何在o n 的時間內找出丟失的整數。思路 從...

程式設計之美 尋找丟失的數

兩個題目 1 給你n個數,其中有且僅有乙個數出現奇數次,其餘的數都出現偶數次。要求用線性時間常數空間找出出現奇數次的那個數。2 同樣是n個數,其中有且僅有2個數出現奇數次,其餘都出現偶數次。要求用線性時間常數空間找出出現奇數次的兩個數。首先知道這個公式就好辦了,a 0 a,a a 0 第一題 int...

LintCode 570 尋找丟失的數 II

給乙個由 1 n的整數隨機組成的乙個字串序列,其中丟失了乙個整數,請找到它。注意事項 n 30 樣例 給出 n 20,str 19201234567891011121314151618 丟失的數是17,返回這個數。思路 回溯法進行深度優先搜尋,需要注意的幾點 數字的越界檢查,找到的數字的計數 不計數...