纸质算法题目
1、给你一个字符串,找出其中第一个只出现过一次的字符及其位置
正解:一层for循环,循环按序取出字符串中的单个字符,循环体内部使用String类的indexOf(),从当前字符下标往后搜索,查看该字符是否存在即可,如果返回-1,则代表不存在,break跳出循环即可;
2、计算100以内所有素数的和
正解:素数是指只能被1和本身整除的数;只要用for循环和%运算符即可解答;但是你如果能说出"筛法"这个名词,懂得如何优化此for循环,便能再加分了;
3、求10000以内的完全数。所谓完全数是指所有因子之和为该数的两倍。
正解:双层for循环,也有优化步骤;
4、有台阶X阶,若每次跨2阶最后剩1阶,每次跨3阶最后剩2阶,每次跨5阶最后剩4阶,每次跨6阶最后剩5阶,每次跨7阶刚好走完。求台阶共有多少阶?
正解:用死循环,变量值为7的倍数,循环体内部用%运算符即可解答;
5、给你一个矩阵,请按照顺时针打印该矩阵,如下图的输出顺序是 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;这是一个二维数组,行列长度不限,要求写出一个通用算法;
正解:定义右、下、左、上四个方向,按这四个方向轮流遍历该二维数组,走过的路标记一下即可解答;
笔试结果:AC