給乙個由 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,返回這個數。思路 回溯法進行深度優先搜尋,需要注意的幾點 數字的越界檢查,找到的數字的計數 不計數...