zoukankan      html  css  js  c++  java
  • 14周课堂测试---找水王

    问题概述:寻找发帖人中的水王·---发帖超过一半

    问题抽象化:寻找数组中出现超过一半的数字

    要求:只使用一次循环结构

    解决思路:将出现的数组元素遍历两两比较,相同则加一,不同则减一,当减为0时更换元素

    由于水王出现超过一半,故当遍历完成后剩下的就是水王。

     1 package zhaoshuiwang;
     2 
     3 import java.util.Scanner;
     4 
     5 public class water {
     6       public static void main(String[] args) {
     7           System.out.println("请输入帖子数目");
     8         Scanner sc=new Scanner(System.in);
     9         int n=sc. nextInt();//数量
    10         System.out.println("请依次输入各个帖子发帖人id");
    11         int a[]=new int[n];
    12         for (int i=0;i<n;i++)
    13          a[i]=sc.nextInt();
    14          System.out.println(Find(a,n));
    15          sc.close();
    16        }
    17 
    18 
    19     //水王pk,相同者+,不同者-,最后剩下水王
    20     public static int Find(int a[],int n){
    21         int king=a[0];
    22         int number=1;
    23         for (int i=0;i<n;i++){
    24             if (number==0){
    25                 king=a[i];
    26                 number=1;
    27             }else
    28             if (a[i]==king){
    29                 number++;
    30             }else{
    31                 number--;
    32             }
    33         }
    34         return king;
    35     }
    36 
    37 }
    water
  • 相关阅读:
    51nod 1185 威佐夫游戏 V2
    51nod 1212 无向图最小生成树
    51nod 1242 斐波那契数列的第N项
    51nod 1240 莫比乌斯函数
    51nod 1256 乘法逆元
    51nod 1264 线段相交
    51nod 1265 四点共面
    51nod 1298 圆与三角形
    51nod 2006 飞行员配对
    CGLIB介绍与原理
  • 原文地址:https://www.cnblogs.com/yeshenfeng/p/10951103.html
Copyright © 2011-2022 走看看