美文网首页
编程练习:寻找发帖"水王"扩展问题一

编程练习:寻找发帖"水王"扩展问题一

作者: DuBetter | 来源:发表于2018-12-20 20:33 被阅读0次

回顾

寻找发帖水王的问题总结起来就是在一个数组中某一个元素出现次数超过了数组长度的一半,那么可以很顺利的找到这个元素,实现见"编程练习:寻找发帖水王"

扩展

上面的问题中,强调了某一个元素出现次数超过了数组长度的一半,那么试想一下,如果这个元素刚好只有一半, 比如{1,2,3,1,2,1};那么按照上面的思路和实验结果,其结果是2,显然出现和预期不符合的答案。

分析

其实可以发现这个元素刚好只出现了一半,那么我们可以在遍历时同时预备两个元素,该思想要达到的效果就是能够找出数组中出现次数第一和第二多的两个变量,那么问题就迎刃而解。

实现

直接上代码, 相应的分析,上面的文章已经很透彻

/**
     * @Author fanjiajia
     * @Date 下午8:11 2018/12/20
     * @Description 数组中某个元素出现次数刚好只有数组长度的一半,找出它
     **/
    public <T> T func3(T[] arr) {
        T[] candidates = (T[]) new Object[2];   // 泛型类数组的创建
        int[] nTimes={0,0};
        for (int i = 0; i < arr.length; i++) {
            if (nTimes[0] == 0) {
                candidates[0] = arr[i];
                nTimes[0] = 1;
            }else if (nTimes[1] == 0) {
                candidates[1] = arr[i];
                nTimes[1] = 1;
            }else if (candidates[0] == arr[i])
                nTimes[0] ++;
            else if (candidates[1] == arr[i])
                nTimes[1] ++;
            else {
                nTimes[0]--;
                nTimes[1]--;
            }
        }
       return nTimes[0] > nTimes[1]? candidates[0]:candidates[1];
    }

最后

生命不息,使劲造

相关文章

  • 编程练习:寻找发帖"水王"扩展问题一

    回顾 寻找发帖水王的问题总结起来就是在一个数组中某一个元素出现次数超过了数组长度的一半,那么可以很顺利的找到这个元...

  • 编程练习:寻找发帖"水王"扩展问题二

    回顾 在前面两篇文章已经实现了水王id出现次数超过一半,以及水王id出现次数刚好一半 分析 借助上面水王id出现次...

  • 编程练习:寻找发帖"水王"

    题目: 寻找发帖"水王" 来源: 编程之美 分析 衍生:就是给定一个数组,其中某个元素出现次数超过了数组长度的一半...

  • 编程之美 2.3 - 寻找发帖“水王”

    题目 传言某论坛有一个“水王”,他的发帖数量超过总发帖数的一半,所有发帖ID都在一起,无序,如何最快找到这个”水王...

  • 2.3 寻找发帖水王

    1 题目 Tango是微软亚洲研究 院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。传说...

  • 寻找发帖水王(经典例题)

    有一个当前论坛所有帖子的列表,作者的ID也在表中, 水王发帖数目超过总数的一半,找到水王的ID 思路: 1.对于数...

  • 2022-11-25

    行业一直在寻找解决方案来解决比特币可编程性差,速度慢和不隐私的问题。在数十年的可扩展性研究和用户体验了可扩展有实质...

  • 简书发帖

    发帖,试水。

  • 十三、扩展点的设计

    一、什么是扩展点 本质是面向接口编程; 扩展点是一类在系统开发时预留的特殊接口,系统在运行时会动态寻找,装载和执行...

  • CS资料

    王垠:编程的智慧如何掌握所有的程序语言 编程入门指南十年学会编程如何学习一门新的编程语言?——在学习区刻意练习程序...

网友评论

      本文标题:编程练习:寻找发帖"水王"扩展问题一

      本文链接:https://www.haomeiwen.com/subject/jomukqtx.html