![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
wings专栏
程序亦非猿
展开
-
排序算法
//==============冒泡排序================= /** * 普通冒泡排序 * * @param array * @return */ public static int[] bubbleSort(int[] array) { if (array == null) { ...原创 2020-03-18 15:51:56 · 81 阅读 · 0 评论 -
翻转二叉树——二叉树的镜像
题目操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5分析思路:先前序遍历...原创 2020-03-17 19:48:29 · 271 阅读 · 0 评论 -
找出数组中出现次数超过一半的数
题目找出数组中出现次数超过一半的数,时间复杂度O(n)。分析把每个数和出现的次数以key-value的形式存储在map中,每次循环都把当前数出现的次数和数组长度的一半作比较即可,例如{1,2,2,3,3,3,3,3,4},3出现的次数超过了数组长度的一半。实现public static int MoreThanHalfNum_Solution(int[] array){ ...原创 2020-03-12 19:39:55 · 156 阅读 · 0 评论 -
二叉树遍历
题目原创 2020-03-12 16:59:27 · 83 阅读 · 0 评论 -
用单向链表表示十进制整数,求两个正整数的和
题目用单向链表表示十进制整数,求两个正整数的和。如,1234+34=1268,注意单项链表的方向从前向后,不允许使用其他数据结构。如下图:分析:正常计算1 2 3 43 41 2 6 8思路结果4 3 2 14 38 6 2 11 2 6 8就是单向链表的翻转,然后进行计算,然后在翻转,即可得出答案实现public class Main { public ...原创 2020-03-12 00:46:55 · 1150 阅读 · 1 评论 -
单向链表反转
题目给定如下链表的节点定义:// C语言定义节点struct LinkNode{ int value; LinkNode* next;};比如有一个链表是这样的,1->2->3->4->5,反转后成为 5->4->3->2->1。请实现函数LinkNode* Reverse(LinkNode* header);分析实现链表反...原创 2020-03-11 22:57:34 · 238 阅读 · 0 评论 -
求解连续子数组的最大和
连续子数组的最大和原创 2020-03-09 20:43:09 · 124 阅读 · 0 评论 -
一千万个数高效求和
背景“一千万个数如何高效求和?”,当看到这个问题的时候,第一反应就是分段求和再相加,而JDK1.8提供的LongAdder类,就是通过分段求和再汇总的思想设计的。为了对比实践,我们先用单线程直接求和,然后再使用多线程求和。单线程求和// 单线程直接求和 public static int singleThreadSum(List<Integer> list){ ...转载 2020-03-03 16:59:00 · 796 阅读 · 0 评论