![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构、算法
酱油花花花
这个作者很懒,什么都没留下…
展开
-
单向链表逆转
1、递归算法,基本思想是: 获取当前节点的下一个目标,将上一个节点赋值为当前节点的下个,并且递归逆转下一个节点,直到链表最后。 package syntax data class Node(val v : Int,var next : Node?) fun main(args: Array<String>) { val tail = Node(0, null) ...原创 2018-08-09 17:25:15 · 378 阅读 · 0 评论 -
数组表示的二叉树
面试某厂的时候面试官问了二叉树最长路径的算法题,给定一个数组找出最长路径的值,第一反应就是动态规划,结果手写代码的时候懵逼想不起怎么通过子节点推算父节点的下标,特此记录警世自己。 fun main(args: Array<String>) { val t = Tree() t.printParentNode(1) t.printParentNode(2...原创 2018-08-07 02:47:57 · 3384 阅读 · 0 评论 -
数组去重
面试题:给定一个排好序的数组,将其去重 1、利用set 2、空间换时间,新建2个长度跟原数组一致的空数组,一个数组保存不重复的index,一个保存余下的index,算法如下: package syntax fun main(args: Array<String>) { val d = intArrayOf(1, 2, 2, 3, 3, 3, 5, 6, 7, 7, ...原创 2018-08-09 03:06:29 · 194 阅读 · 0 评论 -
快速排序
package syntax fun main(args: Array<String>) { val a = intArrayOf( 1,2,5,6,8,5,3,46,2,6,3,74,75,68,3,32,6) QuickSort(a).sort().forEach { i: Int -> print("$i, ") } } cl...原创 2018-08-21 00:33:25 · 136 阅读 · 1 评论