锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
棣栧厛鎴戜滑鏉ョ湅涓嬭В娉曚竴錛屼竴鑸漢閮戒細(xì)鎯沖埌鐨?
{
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;
}
}
澶嶆潅搴︿負(fù)O(k*N)錛?<k<N鏈夌偣涓嶇鍚堣姹傚搱鍝堛傘傘?br>
瑙f硶浜岋細(xì)鎴戜滑鏉ヤ婦涓緥瀛愮湅鐪嬫竻妤氬晩
姣斿12345abcde錛屽悜鍙崇Щ4涓綅緗紝鍒欑Щ鍔ㄥ悗鍙樹負(fù)bcde12345a,鎴戜滑鐪嬪嚭bcde鍜?2345a欏哄簭閮戒繚瀛樹笉鍙橈紝
鎵錛屾垜浠彲浠ヨ繖鏍峰鐞嗗晩銆傘傘?br> 錛?錛?2345a 鍙嶈漿 a54321
(2) bcde鍙嶈漿 edcb 姝ゆ椂鏁扮粍 a54321edcb
錛?錛夊搱鍝堛傘傜湅鍑烘潵浜嗗惂銆傘傚啀鍙嶈漿 bcde12345a
澶嶆潅搴﹀灝戝憿O(N)
{
for(;begin<end;begin++,end--)
{
int temp=arr[begin];
arr[begin]=arr[end];
arr[end]=temp;
}
}
void rightShift(int* arr,int k,int n)
{
k%=n;
reverse(arr,0,n-k-1);
reverse(arr,n-k,n-1);
reverse(arr,0,n-1);
}
]]>
瑙f硶涓錛?br> 鎬濊礬錛氭垜浠竴鑸兘浼?xì)鎯冲埌妯?鎿嶄綔錛屼綑1鍒欏姞1
{
int num=0;
while(v){
if(v%2==1){
num++;
}
v/=2;
}
return num;
}
瑙f硶浜岋細(xì)
鎬濊礬錛氫綅鎿嶄綔錛?x01鍜屾湯浣?"涓?涓?錛屽拰鏈綅0"涓?涓?
{
int num=0;
while(v){
num+=v&0x01;
v>>=1;
}
return num;
}
瑙f硶涓夛細(xì)
鎴戜滑鐭ラ亾錛屽鏋滀竴涓暟v涓?鐨勬暣鏁版騫傦紝鍒檝&(v-1)=0;
鍙楀埌榪欎釜鍚彂錛屾垜浠彲浠ヨ姣忎竴嬈″噺1錛屽垯姣忔浼?xì)娑堢伃涓涓?錛堜粠浣庝綅鍒伴珮浣嶏級錛屽鏉傚害O(m),m涓?br>v涓?鐨勪釜鏁?br>
int count(int v)
{
int num=0;
while(v){
v&=(v-1);
num++;
}
return num;
}
瑙f硶鍥涳細(xì)
濡傛灉璇ユ暣鏁扮殑鑼冨洿鍦ㄤ竴瀹氳寖鍥村唴錛屼笖璇ユ搷浣滃崄鍒嗛綣侊紝鍒欏彲浠ュ厛寤虹珛涓涓煡鎵捐〃錛屽嵆鏁扮粍錛?br>o(1)鐨勫鏉傚害銆?br>
]]>