课堂练习寻找水王

news/2024/6/18 22:01:59

水王问题的实质就是如何快速在一串连续的数字里找到出现次数超过一半的数字。重点是最快,通过老师给出的算法思路,进行设计把这串数字放到一个数组里面,两个相邻的数字去做比较,如果相等,在向后比较,如果不等把这两个数字都置为0,标明这两个数字已经相互抵消。水王的数字最多,最后数组里面只有水王的数字(0不用去管,水王的数字是一个非零数)。

 1 public class Main {
 2     public static void main(String[] args)
 3     {
 4         //把i帖子序号d列表放到一个数组里面
 5         int[] idNum = {1,1,1,4,12,3,11,1,1,15,6,6,77,1,1,8,1};
 6         //指向前一个数和后一个数的指针
 7         int up = 0;
 8         int next = 1;
 9         //通过while循环来实现两两相消法
10         while((up < idNum.length-1)&&(next < idNum.length))
11         {
12             //如果前一个数字和后一个数字相等则指针顺次向后移动一位
13             if(idNum[up] == idNum[next])
14             {
15                 up = up + 1;
16                 next = next + 1;
17             }
18             //如果前一个数和后一个数不相等这两个数就相互消去指针顺次移动两位
19             else
20             {
21                 idNum[up] = 0;
22                 idNum[next] = 0;
23                 up = up + 2;
24                 next = next + 2;
25             }
26         }
27         
28         //两两相消完之后找到第一个不是0的数组元素找到了水王的id
29         next = 0;
30         while(next < idNum.length)
31         {
32             if(idNum[next] != 0)
33             {
34                 System.out.println("水王是"+idNum[next]);
35                 break;
36             }
37             else
38             {
39                 next = next + 1;
40             }
41         }
42         
43     }
44 
45 }

 

转载于:https://www.cnblogs.com/yinianzs/p/10095426.html


http://www.niftyadmin.cn/n/1311663.html

相关文章

jquery 录屏_新书出炉了,《asp.net4+jQuery 构建信息门户网站》,全程录屏,谢谢支持!...

经过半年时间的断断续续(期间还经历了我家宝宝的诞生)&#xff0c;此视频书籍终于出版了&#xff0c;此书籍针对的学习对象为初、中级学者&#xff0c;制作过程全程录屏。不敢称有多少含金量&#xff0c;但绝对是饱含用心在其中。在此感谢我的妻子对我长期以来的支持&#xff0…

golang代码片段

// 1.多goroutine间通信&#xff0c;channel使用 import ("fmt""math/rand""net""os""os/signal""time""crypto/sha256""crypto/sha1""crypto/md5""strings" )func Prod…

js long类型精度丢失_Long类型转json时前端js丢失精度解决方案

一、问题背景Java后端开发过程中&#xff0c;尤其是id字段&#xff0c;因数值太大&#xff0c;通过json形式传输到前端后&#xff0c;在js解析时&#xff0c;会丢失精度。二、解决思路将id字段序列化为json时&#xff0c;转换为字符串类型&#xff0c;前端传输到后端&#xff0…

Vue学习(五):列表渲染

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>列表渲染</title> </head> <body> <!--1.数组迭代--> <div id"example1"><ul><li v-for"item…

Array 对象方法总结

concat() var arr1 [1, 2, 3]; var arr2 [4, 5, 6]; var arr3 arr1.concat(arr2); console.log(arr3); // Output: [1, 2, 3, 4, 5, 6] //合并copyWithin() var arr [1, 2, 3, 4, 5]; arr.copyWithin(0, 3); console.log(arr); // Output: [4, 5, 3, 4, 5] //copywithin(ta…

python 常见异常类型

python标准异常 异常名称     描述 BaseException     所有异常的基类SystemExit             解释器请求退出KeyboardInterrupt          用户中断执行(通常是输入^C)Exception    …

jQuery选择函数

得到或设置文本内容或HTML内容或属性的值 $(“p”).addClass(css中定义的样式类型); 给某个元素添加样式 $(“img”).attr({src:”test.jpg”,alt:”test Image”}); 给某个元素添加属性/值&#xff0c;参数是map $(“img”).attr(“src”,”test.jpg”); 给某个元素添加属性/值…

IntelliJ IDEA 搭建配置Maven(二)

IDEA 搭建 maven 1.下载 maven 压缩包 a.输入网址 www.apache.org b.往下拉&#xff0c;来到以下界面&#xff0c;点击 maven c.点击 Download d.点击下载 e.文件如下 2.解压 maven 压缩包 a.以下目录 b.新建本地仓库 文件夹 MavenRepository c.打开 conf文件夹中 修改里面的 s…