![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
坚持学习的猿
这个作者很懒,什么都没留下…
展开
-
使用迭代器来遍历HashMap
通过迭代器来遍历HashMap,演示一下迭代器Iterator的使用 Map<Integer, String> map = new HashMap<>(); map.put(1, "java"); map.put(2, "c++"); map.put(3, "php"); Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator(); while (iterator.hasN原创 2020-10-18 12:12:27 · 675 阅读 · 0 评论 -
leetcode 136题
根据题目说明,我们的算法应该具有线性的时间复杂度,并且时间复杂度是常数。 我只想到了暴力解法和排序双指针的算法。并没有想到位运算,加上对位运算也不熟悉,因此做个笔记。 异或具有的三个性质: 任何数和0做异或运算,结果仍然是原来的数 任何数和其自身做异或运算,结果是0 异或运算满足交换律和结合律 public int singleNumber(int[] nums) { int single = 0; for (int num : nums) { .原创 2020-07-31 12:28:11 · 267 阅读 · 0 评论 -
BST
/*基于二叉查找树的符号表*/ public class BST<Key extends Comparable<Key>, Value> { // 根结点 private Node root; // 定义一个内部结点类 private class Node{ private Key key; // 键 private Value val; // 值 private Node left,原创 2020-07-30 13:08:14 · 137 阅读 · 0 评论 -
摩尔投票法求众数
摩尔投票法求众数 题目: **解答 :**首先n/k的众数最多只有k-1个,因为众数的定义是指出现的次数大于n/k,如果众数有k个那么众数的所有元素加起来肯定是大于n的,不符。 因此n/3最多有2个众数。因此我们可以先选出两个候选人A,B。投票结束后我们还需要遍历一遍数组来确定候选人是不是众数。 写代码的步骤: 1.如果投票给A候选人等价于当前的元素是A元素,则把A候选人的票数加一。 2.如果投票给B候选人等价于当前的元素是B元素,则把B候选人的票数加一。 3.如果A,B都不投等价于当前元素与A,B元素都原创 2020-07-17 18:55:51 · 297 阅读 · 0 评论 -
算法第四版排序类算法的总结1
算法第四版排序类算法的总结1 1.选择排序 选择排序的中心思想就是遍历第一个元素后面的元素,找出最小的一个元素然后和第一个元素进行交换,下面是java代码 public class Selection { // 交换 private static void exch(Comparable[] a, int i, int j){ Comparable t = a[i]; a[i] = a[j]; a[j] = a[i]; }原创 2020-07-16 10:26:56 · 115 阅读 · 0 评论