程式設計之美9:陣列迴圈位移
1: RightShift(int *arr, int N, int K) { K %= N; while (K--) { int t = arr[N - 1]; for (int i = N - 1; i > 0; i--) { arr[i] = arr[i - 1]; } arr[0] = t; } } 2: Reverse(int *arr, int b, int e) { for (; b < e; b++, e--) { int temp = arr[e]; arr[e] = arr[b]; arr[b] = temp; } } RightShift(int *arr, int N, int K) { K %= N; Reverse(arr, 0, N-K-1); Reverse(arr, N-K, N-1); Reverse(arr, 0, N-1); }
相關推薦
程式設計之美9:陣列迴圈位移
1: RightShift(int *arr, int N, int K) { K %= N; while (K--) { int t = arr[N - 1]; for (int i = N - 1; i > 0; i--)
程式設計之美6:陣列迴圈移位
樓主又來~(≧▽≦)/~啦啦啦,科研,就是要這麼一鼓作氣。額,其實樓主的老本行是推公式啊,做這些演算法題,其實是樓主在偷懶。額,話不多說了,快請出我們今天的主角吧!還是關於陣列的-陣列迴圈移位。 下面我們來看下題目的要求。 題目要求: 設計一個演算法,
程式設計之美8:求陣列的子陣列之和的最大值
1: int MaxSum(int *A, int n) { int maximum = -INF; int sum; for (int i = 0; i < n; i++) { sum = 0; for (int j = i;
程式設計之美4:那些常被考到的關於陣列的最大子陣列問題
樓主這篇文章的目的是要帶大家梳理一下,有關於求子陣列問題。如求子陣列的最大和,求最大和的子陣列,求最大積的子陣列等一系列問題。今天陽光明媚,樓主今天心情很好哦,願大家開心每一天,哈哈。Are you ready?開始了哦~~~ 題目一:求子陣列的最大和
程式設計之美10:計算字串的相似度
我們並不在乎兩個字串變得相等之後的字串是怎樣的,所以 1.一步操作之後,再將A[2,…,lenA]和B[1,…,lenB]變成相同的字串。 2.一步操作之後,再將A[1,…,lenA]和B[2,…,lenB]變成相同的字串。 3.一步操作之後,再將A[2,…,lenA]和B[2,…,lenB]變成相
程式設計之美7:最大公約數
1:輾轉相除法 f(x,y) = f(y, x%y); int gcd(int x, int y) { return (!y) ? x : gcd(y, x % y); } 2:對於大整數,取模運算非常昂貴。 f(x, y) = f(x-y, y); BigInt gcd(BigI
程式設計之美3:求二進位制數中1的個數
1: int Count(BYTE v) { int num = 0; while (v) { if (v % 2 == 1) { num++; } v = v / 2; }
程式設計之美2:程式只用一個位元組變數,列印將帥位置
原創:https://blog.csdn.net/ndzjx/article/details/84404320 #include <stdio.h> #include <windows.h> #include <time.h> #include <
程式設計之美1:CPU列印直線,曲線
原創:https://blog.csdn.net/ndzjx/article/details/84404268 1:本質:每次迴圈的CPU比例問題。 CPU排程時間片,大約為20ms 2.2GHz是CPU時鐘週期,= 22億次 = 2.2*10^9 每個時鐘週期平均執行2條彙編指令
程式設計之美4:階乘相關
1)N!末尾有多少個零 N! = K * 10^M N! = 2^X * 3^Y * 5^Z M = min(X,Z) 其中X >= Z,因為能被2整除的數出現的頻率比能被5整除的數高很多。 於是只需計算因式分解中5的指數。 1: ret = 0; for (int i = 1; i <
程式設計之美1:那些關於1的個數的經典面試題
那些關於1的個數的經典面試題 好長時間沒有練演算法了,筆試題一做,發現非常吃力,所以近日來找來《程式設計之美》一書來看看練練。為了激勵自己多練,樓樓可能會出個專欄什麼的,感興趣的同學我們可以一起抱團,樓樓也會保證每天都會更新。那今天呢,就是《程式設計之美》的第
程式設計之美2.18——陣列分割
問題: 1. 有一個無序、元素個數為2n的正整數陣列,要求:如何能把這個陣列分割為兩個子陣列,子陣列的元素個數不限,並使兩個子陣列之和最接近。 2. 有一個無序、元素個數為2n的正整數陣列,要求:如何能把這個陣列分割為元素個數為n的兩個陣列,並使兩個子陣列之和最接近。 1
程式設計之美8:連結串列常見面試筆試題集合
樓樓這篇文章決定把面試中關於連結串列的常見面試題或者筆試題整理一下,現在目前為止只整理了四個題目,後面如果樓主看到還有什麼題目需要記錄的話,會一直更新的。樓樓略菜,如果有什麼錯誤或不對的地方,希望各位看官留言指出,謝謝啦! 今天又是福來day了,好傷心啊,一週
程式設計之美7:字串,那些你必須要會的事。
本系列收錄了常見字串面試和筆試中的八道題,更新於2015年4月23日。 如果有問題或想法,請直接留言,交流。 題目一:字串移位包含 問題描述: 給定兩個字串s1和s2,要求判定s2是否能夠被通過迴圈移位得到的字串包含。例如,給定s1 = AABCD和
程式設計之美2:尋找最大的K個數
根據樓樓參加筆試或者面試的經驗而言,尋找最大的K個數這個問題,被問到已經不只兩三次了,所以樓樓決定認認真真地把這個問題寫一下,解法思想參照《程式設計之美》一書。 題目簡介 有很多無序的數,我們姑且假定他們各不相等,怎麼選出其中最大的K個數呢? 相關知識點
《程式設計珠璣》程式碼之路13:陣列如何線上性時間內實現多次區間修改
給一個數組,每次對某個區間增加某個值,如何線上性時間內完成。 比如一個數組,剛開始都是0吧,如下表,第一行是下標: 0 1 2 3 4 5 6 7 0 0
《程式設計珠璣》程式碼之路9:請粗略估計,200萬一個值和一個指標的結構體能否存入128MB記憶體。
這個問題是《程式設計珠璣》第七章的一個問題。主要就是說像一個結構體中包含一個int和一個char,加起來是5個位元組,但因為位元組對齊的需要,實際會佔用8位元組。就這麼多麼? 作為經典鉅著,當然不會這麼一點點啦。 看下圖: 這幅圖是告訴我們,一個對齊後sizeof()列大小的結構體
程式設計之美:求二進位制中1的個數
1.問題描述 實現一個函式,輸入一個無符號整數,輸出該數二進位制中的1的個數。例如把9表示成二進位制是1001,有2位是1,因此如果輸入9,該函式輸出2 2.分析與解法 解法1:利用十進位制和二進位制相互轉化的規則,依次除餘操作的結果是否為1 程式碼如下: int Count1(unsigned
Java 併發程式設計之美:併發程式設計高階篇之一-chat
借用 Java 併發程式設計實踐中的話:編寫正確的程式並不容易,而編寫正常的併發程式就更難了。相比於順序執行的情況,多執行緒的執行緒安全問題是微妙而且出乎意料的,因為在沒有進行適當同步的情況下多執行緒中各個操作的順序是不可預期的。 併發程式設計相比 Java
Python書籍推薦:《Python程式設計之美:最佳實踐指南》
《Python程式設計之美:最佳實踐指南》的作者之一就是大名鼎鼎的K神,Kenneth Reitz,也就是requests庫的作者。在這裡必須誇一下requests庫,真是太好用了,能用requests絕不用urllib、urllib2。K神出品,必屬精品!!