演算法練習 刷演算法題時的技巧

2021-10-21 10:05:53 字數 2193 閱讀 7398

變數型別

讀入/輸出

函式reverse

全排列注意

排序最簡潔的寫法是while(t–)

t =5;

while

(t--

)

// 轉換進製

int ans[31]

=, num =0;

dowhile

(sum !=0)

;for

(int i = num -

1; i >=

0; i--

)

資料範圍 [-2

632^

263, 2

632^

263-1]

資料範圍 [-2

312^

231, 2

312^

231]

long

long a;

printf

("%lld"

,&a)

;

printf

("%lf"

,&a)

;

資料個數n

int n;

scanf

("%d"

,&n)

;int a[n]

;for

(int i =

0; i < n; i++

)

讀取字元時,為了防止讀入空格,使用getchar()更好

getchar

(c);

gets

(str)

;

定義二維陣列:適用於輸出一系列字串,輸出時請使用ans[i]

例如:

char ans[90]

[90];

for(

int i = num -

1; i >=

0; i--

)

str = str1 + str2;

printf

("%s"

, str)

;

abs()

絕對值功能:逆序(或反轉),多用於字串、陣列、容器。標頭檔案是

#include

reverse函式用於反轉在[first,last)範圍內的順序(包括first指向的元素,不包括last指向的元素),reverse函式無返回值

// 對字串

string str=

"hello world , hi"

;reverse

(str.

begin()

,str.

end())

;//str結果為 ih , dlrow olleh

// 對容器

vector<

int> v =

;reverse

(v.begin()

,v.end()

);//容器v的值變為1,2,3,4,5

參考文章:c++ reverse函式的用法

// 首先對數列排序(從小到大)

sort

(a, a + n)

;

最後乙個輸出後面不能有空格

if

(count < n)

以變數作為陣列下標,查詢元素更加方便,例如:b1041.考試座位號

假如有乙個結構體

struct studentstu;
main函式中,需要加入乙個比較函式 cmp():

sort

(stu, stu+n, cmp)

;// stu:需要排序的陣列 n:需要排序的陣列的大小

實現從大到小的排序

bool cmp

(student a, student b)

bool cmp

(student a, student b)

刷題演算法小技巧

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

Python 刷演算法題技巧

以空格為間隔輸出 行末無空格 f dfs is a 格式化字串簡短寫法,前面加乙個 f 與 區別 結果都是浮點數,只有當兩個運算元其中有浮點數結果才為浮點數 一行寫多個語句用 分開,乙個語句一行寫不下行末用 用,結尾的不用加。if 寫法 普通寫法if condition if condition 我...

演算法刷題ING

給定字串j代表石頭中寶石的型別,和字串s代表你擁有的石頭。s中每個字元代表了一種你擁有的石頭的型別,你想知道你擁有的石頭中有多少是寶石。j中的字母不重複,j和s中的所有字元都是字母。字母區分大小寫,因此 a 和 a 是不同型別的石頭。示例 輸入 j aa s aaabbbb 輸出 3class so...