程式設計之旅 程式設計常出現的錯誤(警醒 )

2021-09-11 17:56:24 字數 1245 閱讀 5465

1,只定義了需要輸入的整數n,卻沒有輸入它(scanf("%d", &n));

2,使用乙個陣列時,它的原值已經在數值處理中被更改了,不是原值(此時需要設定乙個臨時變數temp,把陣列值付給它,對它進行操作);

3,輸出固定字元時,打錯了,例如題目需要輸出none,卻輸成了none;

4,出現段錯誤,是訪問了非法的記憶體,一般情況是陣列長度設定過小或是訪問時陣列越界;

5,用fgets輸入字串時,使用strlen計算長度,一定要減1;

6,括號不對稱(error: c++ requires a type specifier for all declarations);

7,scanf()整數後,使用fgets,一定要先使用getchar()吸收換行符;

解題詳解:

1,最a,(搜尋:深【遞迴】、寬【佇列】(窮舉所有的可能性)——(變化的次數)(狀態轉移的次數、列舉【迴圈】)窮舉

b,動態規劃

c,貪心

d,閉式(公式)

2,解題金字塔

3,演算法題五種解法

a,舉例法:具體例子,到一般規則(公式符號化)

b,模式匹配法:相似問題,到現有問題(經典的變體)

c,簡單推廣法:從簡化版,到複雜版(修改約束條件)

d,簡化構造法:從n=1開始(遞推或遞迴)

e,資料結構頭腦風暴:鍊錶、陣列、二叉樹、堆、棧、佇列

字首和?樹狀陣列?區間樹?

4,模版需要記住的

1)快速冪取模運算

2)二分法(

查詢有序序列給定數x(對於下標從0開始,【left,right】——【0,n - 1】);⚠️:left <= right

【】查詢有序序列第乙個滿足某條件元素的位置(初值必須覆蓋所有值【對於下標從0開始的陣列,【left,right】——【0,n】);⚠️:left < right

(】查詢有序序列第乙個滿足條件的元素的位置(初值必須覆蓋所有值,left比最小值小一)【left,right】——【-1,n】),

⚠️:left + 1 < right

3)two pointers

⚠️:進入函式前要讓a對m取模

5,特殊寫法

1)eps = 1e-5等價於10^-5

const double pi = acos(-1.0)

int inf = 0x7fffffff       是int上限

6,演算法優化

1)dfs對於重複子問題的求解,可以使用動規陣列或者記憶型遞迴

2)

開始我的程式設計之旅

不管我以前過的生活 做的事和計算機這一行有多遠,也不管我其間走了多少彎路,最終我走到了這條道上。剛開始工作,還有很多不穩定因素,也不能肯定的講我就鐵定進了這一行。只是對於我自己來說,我確實沒有什麼可以拿的出手的技能,那些我自認為很碉堡的能力都是意識上的,我需要乙個實際的技能來給自己博得更多的機會。不...

程式設計之旅 Day6

1 劍指offer 面試題10 斐波那契數列 面試題17 列印從1到最大的n位數 2 leetcode 例1 鍊錶排序 例2 判斷鍊錶是否含有環 面試題10 斐波那契數列 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39。思路 1...

程式設計之旅 Day16

day16 學習內容 1.劍指offer 面試題32 從上往下列印二叉樹 面試題58 翻轉字元 2.leetcode 例1 跳躍遊戲 例2 已知n,生成count and say 序列 題目描述 從上往下列印出二叉樹的每個節點,同層節點從左至右列印。思路 使用佇列進行廣義優先遍歷 class sol...