昨天參加了一下校內acm隊選拔。第一次以考試競賽做演算法,緊張到連個陣列定義都快忘了,讀個題還讀了幾遍才反應過來。考完反省良多。順便考後總結了一下題目,其實整體還是算蠻簡單的,都是leetcode上的入門題,也是一些基礎題
本篇部落格主要是基於在去acm選拔前做心理準備時,發現搜不到判斷自己演算法水平題時寫的,只做參考
給你乙個陣列 nums 。陣列「動態和」的計算公式為:runningsum[i] = sum(nums[0]…nums[i]) 。請返回 nums 的動態和。
示例 1:
輸入:nums = [1,2,3,4]
輸出:[1,3,6,10]
解釋:動態和計算過程為 [1, 1+2, 1+2+3, 1+2+3+4] 。
示例 2:
輸入:nums = [1,1,1,1,1]
輸出:[1,2,3,4,5]
解釋:動態和計算過程為 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。
/**
* 第一題:一維陣列的動態和
*/public static int runningsum(int nums)
/*** 第一題:一維陣列的動態和
*/public static int runningsum(int nums)
string reverse2 = "";
for(int k=0;kstring reverse3 = reverse + reverse2;
return reverse3;
}/**
* 第三題:存在重複3次的元素
*/public static boolean containsduplicate(int nums)
}else return false;
}return false;
}return false;
}/**
* 第四題:反轉字串
*/public static char reversestring(char s)
return s;
}//以下的**為測試**,不用閱讀,可以忽略
//以下的**為測試**,不用閱讀,可以忽略
//以下的**為測試**,不用閱讀,可以忽略
public static void test1() ;
int result = runningsum(nums);
system.out.println("你的第一題的輸入為:[1, 2, 3, 4]");
system.out.print("你的第一題輸出為:");
printintelements(result);
}public static void test2()
public static void test3() ;
int array2 = ;
system.out.println("你的第三題輸入1為:[1, 1, 1, 3, 3, 4, 3, 2, 4, 2]");
system.out.println("你的第三題輸出1為:" + containsduplicate(array1));
system.out.println("你的第三題輸入2為:[1, 2, 3, 1]");
system.out.println("你的第三題輸出2為:" + containsduplicate(array2));
}public static void test4() ;
system.out.println("你的第四題輸入為:");
printelements(chararray);
char reverseresult = reversestring(chararray);
system.out.println("你的第四題輸出為:");
printelements(reverseresult);
}public static void printelements(char chararray) else
}system.out.print("]");
system.out.println();
}public static void printintelements(int chararray) else
}system.out.print("]");
system.out.println();
}}
ACM基礎之排序演算法
在acm基礎知識中,排序是一種比較基礎但又比較重要的思想,熟練地掌握排序演算法十分有必要。排序的方法比較多,這裡重要介紹三種排序 選擇排序 插入排序 氣泡排序。一 選擇排序 1 基本思想 在要排序的一組數中,選出最小的數與第乙個數交換,然後再在剩下的數中選出最小的數與第二個數交換 直到第n 1個數與...
ACM演算法 常數和語言基礎
unsigned int 0 4294967295 int 2147483648 2147483647 unsigned long 0 4294967295 long 2147483648 2147483647 long long的最大值 9223372036854775807 long long的...
ACM道路之一 基礎演算法(快速排序)
快速排序 qsort 本質是分治思想 排序的一次劃分演算法從兩頭交替搜尋,直到low和high重合,因此其時間複雜度是o n 而整個快速排序演算法的時間複雜度與劃分的趟數有關。快速排序三個步驟 1 確定區域,左邊界 l 右邊界 r 基準值 x l r 2 2 保證區間內,x左側的任意值小於x,x右側...