一:求GCG(greatest common divisor)
analysis: tow nonnegative integer p and q, if q is 0 then gcd is q, then the gcd is the greatest common divisor of q and p%q. q和p%q的最大公约数,当然也是p和q的最大公约数。
int gcd(int p, int q){
if(q == 0) return q;
return gcd(q, p%q);
}
二:merge two sorted integer array into a third array, and make sure the third array also be sorted.
analysis: image two integer array are a and b, create array c and its length is
a.lenght plus b.length, define two varible indexA, indexB pointing the index of a and b, then loop infinite comparing a[indexA] and b[indexB], if a[indexA] > b[indexB], then assign b[indexB] to c[indexA+indexB] and indexB increase by 1, so vice verse. if indexA exceeds a.length or indexB exceeds b.length, then copy the remaining of a or b to c and terminates the loop.
pseudo code:
int[] a = {};
int[] b = {};
int[] c = new int[a.length+b.length];
int indexA = indexB = 0;
while(true){
while(true){
if(indexA == a.length){// copy remaining b to c
System.arraycopy(b, indexB, c, indexA+indexB, b.length - indexB);
break;
}
if(indexB == b.length){//copy remaining a to c
System.arraycopy(a, indexA, c, indexA+indexB, a.length-indexA);
break;
}
if(a[indexA] > b[indexB]){
c[indexA+indexB] = b[indexB];
indexB++;
}else{
c[indexA+indexB] = a[indexA];
indexA++;
}
}
}
三:reverse an array or testify if a number is a palindrome number
pseudo code:
int[] a = {};
int tmp;
for(int i=0;i<a.length/2;i++){
tmp = a[i];
a[i] = a[a.length-1-i];
a[a.length-1-i] = tmp;
}
四:matrix-matrix multiplicatoin
在计算机中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和
pseudo code:
int[][] a = {{1, 1},{2, 0}};
int[][] b = {{0, 2, 3}, {1, 1, 2}};
if(a[0].length != b.length){
throw new IllegalArgumentException("first matrix's column length must equals with second matrix's row length");
}
int[][] c = new int[a.length][b[0].length];
for(int i=0;i<a.length;i++){//matrix a's row loop
for(int j=0;j<b[0].length;j++){//matrix b's column loop
for(int k=0;k<a[0].length;k++){
c[i][j] += a[i][k] * b[k][j];
}
}
}
五:HanoiTower
思想:首先要把前N-1个盘子转移到辅助柱,然后把第N个盘转到目标柱,最后再把前N-1个盘从辅助柱转移到目标柱,在转移过程中,把第三根柱子视为辅助柱。
pseudo code:
private static void hanoTower(String start, String dest, String auxiliary, int number){
if(number == 0){
return ;
}
hanoTower(start, auxiliary, dest, number-1);
count++;
System.out.println("move " + number + " from "+ start +" to "+ dest);
hanoTower(auxiliary, dest, start, number-1);
}
结论:总的移动次数是2^n -1, 如果N是偶数,则开始把1号盘移到辅助柱,如果N是奇数,把1号盘移到目标柱上。
分享到:
相关推荐
该题目要求学习者编写一个JAVA程序来解决古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?该题目旨在考察学习者...
这本书包含了各种难度级别的算法题目,涵盖了从基础的排序和搜索问题到复杂的数据结构和图论算法。通过这些题目,读者可以逐步提升自己的编程思维和问题解决能力。 在算法题目这一主题中,我们首先会遇到的是基础...
《2017年华为算法比赛题目》是华为公司举办的一场年度算法竞赛,旨在考察参赛者在编程和算法设计上的能力。比赛题目分为中文版和英文版,以满足不同语言背景的选手需求。编译器支持GCC(GNU Compiler Collection)和...
PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 PTA-数据结构与算法题目集 ...
本文将介绍并解析两道有趣的Python算法题目,旨在帮助读者更好地理解Python语言的特点及其在处理字符串方面的优势。通过具体的示例代码,我们将深入探讨Python如何以简洁而高效的方式解决实际问题。 #### 题目1:...
在解答这些Java经典算法题目时,除了掌握算法本身,还需要关注代码的可读性、可维护性和效率。通过不断实践,开发者可以提升自己的编程技巧,为解决实际工作中的复杂问题打下坚实的基础。因此,无论是初学者还是经验...
C++经典算法题目 本资源是一个C++经典算法题目集,涵盖了多种算法类型,包括基本算法、数字算法、字符串算法等。该资源来自学校内部的资料,是学习C++编程的非常有价值的参考资料。 算法1:A+B Problem 该算法的...
根据提供的文件信息,我们可以推断出这是一份关于“算法高频题目精讲”的资料,并且提供了百度云的下载链接。接下来,我们将从标题、描述、标签以及部分内容中提取相关知识点。 ### 标题:算法高频题目精讲百度云...
"Java程序设计算法竞赛题目" 本资源总结了Java程序设计算法竞赛题目,涵盖了三个问题: Problem1 排序算法、Problem2 停车场问题和Problem3 控制程序。每个问题都提供了详细的描述、输入和输出示例,以便更好地理解...
《算法题目大全》是针对程序员面试和笔试精心整理的一份资源集合,涵盖了C++、Java、Python等主流编程语言的算法实现。这份压缩包文件名为“程序员算法面试笔试大全data structures and algorithms”,揭示了其核心...
ZTE2017中兴捧月算法大赛傅里叶题目及作品。资源内包含ZTE2017中兴捧月算法大赛傅里叶题目和作品。
《经典算法题目——深入ACM竞赛解题策略》 在计算机科学的世界里,算法是解决问题的核心工具,尤其在ACM(国际大学生程序设计竞赛)这样的竞技场上,算法能力的高低往往决定着比赛的胜负。本资源集合了一些经典算法...
毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目:关于HEVC帧间预测测试AMP模式的快速算法 毕设题目...
名企算法笔试题目
算法分析设计历年题目1 本文将对算法分析设计历年题目1进行详细的解析和总结,涵盖算法设计、回溯法、动态规划、贪婪算法、Las Vegas 算法、NP 完全问题等多个方面。 1. 算法设计 * 一个正确的算法,对于每个合法...
该题目是“ATC-2020算法大赛题目1”,主要涉及算法设计和优化问题,具体为5G基站的最优化部署。在5G通信技术中,由于基站的信号覆盖范围有限,需要合理布局以确保所有区域都能接收到信号。题目要求参赛者编写程序,...
有趣的算法题目 本资源中包含了多个经典的算法题目,涵盖了分治问题、归纳问题和动态规划类的问题。这些问题都是计算机科学和信息技术领域中的基础知识,掌握这些知识点对于计算机科学和信息技术专业的学生和从业者...
7. **快速排序算法**:快速排序是一种采用分治策略的递归排序算法,其核心是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,然后分别对这两部分记录继续进行排序,以...