基礎演算法acm檢驗

2021-10-25 02:24:37 字數 2188 閱讀 2210

昨天參加了一下校內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右側...