实验要求:
结对开发伙伴:
姓名:陶雨洁
博客地址链接:http://www.cnblogs.com/Amyheartxy/p/6736268.html
一、设计思想
其实在课堂上,老师已经点出了一点思路,已经很接近于答案,具体思路如下:
1.首先,先用一组整型数组来代替帖子列表。
2.因为“水王”发的帖子的数量超过一半,所以,当从前往后遍历时,如果相邻两个数字相同,则往后推一位,继续比较;如果相邻两个数字不同,则“舍去”(即用某种符号标记,如“*”号)这两个数字。
3.最后,从前往后遍历数组,遇到第一个未被标记为“*”时,即为“水王”的帖子ID。
二、代码实现
package Test;public class t {public static void main(String[] args) {// TODO Auto-generated method stub System.out.print("原始数据:");char[] a={'1','2','2','3','2','1','2','2','2','1'};//char[] a={'1','3','3','3','2','3','3','3','2','3','1'};//char[] a={'1'};
//char[] a={'1','3','3'};int n=a.length;for(int j=0;j<n;j++){System.out.print(a[j]+" ");}System.out.println();System.out.print("变化过程:");int i=0;while(i<n){
if(i+1>=n){break;}
else{if(a[i]==a[i+1]){i++;}else{a[i]='*';a[i+1]='*';i+=2;}//if...else...
}}System.out.println();for(int j=0;j<n;j++){System.out.print(a[j]+" ");}System.out.println();System.out.print("找出结果:");for(int j=0;j<n;j++){if(a[j]!='*'){System.out.println(a[j]);break;}}} }
三、实现截图
①
②
③
④
[③和④的验证也许是多余的,因为实验要求就已经要求了“水王”的帖子数量超过帖子总数的一半了...]
四、个人总结
这几天的程序,比如二维数组和“水王”的程序,都有一些老师的提示。所以,还是得加油(ง •_•)ง。