程式設計題記錄

2021-09-14 07:40:35 字數 1663 閱讀 3707

1.給出乙個字串 a, 表示乙個 n 位正整數, 刪除其中 k 位數字, 使得剩餘的數字仍然按照原來的順序排列產生乙個新的正整數。

找到刪除 k 個數字之後的最小正整數。n

<= 240, k

<= n

class solution 

for(auto c:str)

sk.push(c);

}else

i++;

}while(!sk.empty())

return res;

}};

3.輸入乙個含有n個數字的陣列,問需要幾次陣列裡面的數字就被刪完了,刪的規則是這樣的,每次從乙個回文串裡刪,如果沒有回文串,只能乙個乙個的刪,返回需要的最少次數,比如輸入[1,2],返回2,因為沒有回文,只能乙個乙個的刪;輸入[1,4,3,1,5],返回3,因為第一次刪掉3(或4)後,剩下的陣列是[1,4(或3),1,5],第二次可以將回文內的數字都刪掉,最後把5刪掉,一共3次

4.給定乙個僅包含0或1的字串,現在可以對齊進行一種操作:01相鄰時可以消除掉這兩個字元,這樣操作可以一直進行下去直到找不到相鄰的0和1為止問這個字串經歷了操作後的最短長度

41100

輸出 0

#include#includeusing namespace std;

class solution

else

i++;

} return s.size();

}};int main()

return 0;

}

5.小q手上有n種不同面值的硬幣,每種硬幣都有無限多個希望帶盡量少的硬幣,並且能組合出1到m之間(包含1和m)的所有面值

m 20 n 4

1 2 3 10

輸出 5 

class solution 

}return dp[amount]>amount?-1:dp[amount];

}};

6.打怪獸,依次遇見n只怪獸,每只都有武力值和所需金幣數,給金幣會護送 ,如果沒有賄賂且大於護送的武力值之和會攻擊 

問所需最少金幣數(只通過了70%,找不到原因)

3 n只

8 5 10武力值

1 1 2金幣數

輸出2 

#include#includeusing namespace std;

int fun(int n,vectord,vectorp)

else if(d_max>d[i])

else

}return p_min;

}int main()

for(int i = 0;i>b;

p[i] = b;

} int res = fun(n,d,p);

cout<7.請設計乙個類,該類在同乙個程序中只能由乙個例項,且該例項允許外部訪問。

只能生成乙個例項的類是實現了單例模式的型別。

解題思路:

1.必須把建構函式設為私有函式,防止他人建立例項。

2.在類中建立靜態私有的例項,在需要時建立該例項,直到程式結束才銷毀。

3.提供乙個靜態的公有的函式用於建立/獲取靜態私有物件。

class singleton;

程式語言常見問題記錄

使用calloc函式進行動態一維陣列分配。但是不能使用memset函式進行初始化。而正規申請的定長陣列是可以使用memset函式進行置零初始化的。例如 要申請乙個p n include include intmain 使用calloc函式進行動態二維陣列分配,例如,要申請乙個p m n int ma...

演算法題記錄

1.給定乙個整數陣列nums和乙個目標值target,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。法一 時間複雜度o n 2 空間複雜度o n var twosum function nums,targ...

程式設計問題記錄 語句寫在函式外

今天第一次寫3d遊戲中程式,只想初始化一下d3d。可是在第一步 獲取介面idirect3d9的指標 時就出現了問題。很多人都說是引用標頭檔案出錯,但是我設定過應該沒問題。到很多群裡問,論壇發貼都沒得解。經過一晚上思考,終於在今天零晨乙個群裡的朋友看了我傳給他的專案後找到了原因 語句寫在了函式體外!請...