演算法刷題小總結

2022-07-26 13:15:12 字數 667 閱讀 1340

1.有問題**

class

solution

if(i == 0)

reverse(nums.begin(), nums.end());

else

}swap(nums[k], nums[i]);

sort(nums.begin()+k+1

, nums.end()); }}

};

問題:這種while()裡面加了個if-else判斷的話,如果處於邊界時,else 語句塊有可能不會執行裡面的有效內容。

方法一:

class

solution

if(i == 0

)

else

swap(nums[k],nums[i

-1]); // 改動之後

sort(nums.begin()+k+1

, nums.end()); }}

};

方法二:

class

solution

}};

解決:把需要一定執行的語句放在while外面,這樣即可解決問題

或  將while和if的判斷語句都寫在while中(如方法二)。前提是else中沒有有效語句

刷題演算法小技巧

1.大數取餘 對於較大數快速取餘 引數 char s 為儲存大數的陣列 modnumber 為mod long long modnumber char s,int modnumber return sum 2.快速冪 極大數 取餘 對於較大數快速取餘 引數 a的b次方 對 c 取餘 long lon...

演算法刷題筆記總結記錄

所有的演算法題第一要義就是要明白題目講什麼,明白規律是什麼,只有知道了規律才能寫 才能輪到使用什麼方法,什麼工具,是用遞迴?還是迴圈?進而才能用到你總結的各種經驗。下面的題目除了動態規劃,其他主要來自劍指offer的題目,而且主要是資料結構題 排序演算法我們單獨整理。1 遞迴模板以及使用技巧總結 2...

減指offer演算法題刷題總結

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。解題思路 利用hashset去重原理,遍歷新增陣列元素,新增失敗則返回重複元素 class solution re...