数组
Green__Arrow
机会是留给有准备的人
展开
-
二维数组的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序。每一列都按照从上到下递增的顺序排序,请完成一个函数,输入这样的一个二维数组和一个整数,判断数组是否含有该整数。 思路:首先选择数组中右上角的数字,如果该数字是要找数字,查找过程结束;如果该数字大于查找数字,剔除这个数字所在列;如果该数字小于查找数字,剔除这个数字所在行。 public static Boolean find(int[][] a,原创 2015-05-09 16:32:19 · 631 阅读 · 0 评论 -
调整数组顺序使其奇数位于偶数前面
关键:定义首尾两个指针,同时向中间移动,首指针遇到第一个偶数和尾指针遇到的第一个奇数交换,重复上述步骤public static void reorder(int a[],int length){ if(a==null||length<=0){ return; } int begin=0; int last=le原创 2015-05-01 20:11:48 · 565 阅读 · 0 评论 -
数组中重复的数字(n个数字,且数字都在0到n-1范围内)
思路:从头到尾扫描数组每个数字,当扫描到下标为i的数字m时,首先比较m是不是等于i,如果是,继续扫描;如果不是,再拿m和第m个数字进行比较。如果他们相等,就找到第一个重复数字,如果不相等,交换两者位置。接下来重复上述过程,直到找到第一个重复数字。原创 2015-05-14 20:26:14 · 2825 阅读 · 0 评论 -
打印1到最大的n位数
例如:输入2,打印1到99内所有数 需要考虑大数问题,采用数组来表示,发现数字各位都是有0~9组成,需要打印所有的组合,注意打印时候,0在前面的不打印,如019,02等。(已测)原创 2015-05-02 16:52:28 · 575 阅读 · 0 评论 -
数组中出现次数超过一半的数字
思路:保存数字中一个值和次数,当遍历到下个数字时,如果和保存数字相同次数加1,否则次数减1,当次数为0,则保存下一个数字,并把次数设为1,因为要找的数字次数超过一半,那么最后一个保存的数字一定就是要找的数字。public class MoreThanHalfNum { /** * 需找次数超过一半数字 * @param nums * @param le原创 2015-05-24 10:58:24 · 758 阅读 · 0 评论