
LeetCode
文章平均质量分 86
代码两三事
公众号:代码两三事
移动端开发者,Android,Kotlin,KMP方向
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
有意思的堆排序和堆
堆简介 经典的十大排序算法中有一种算法叫做堆排序。堆排序是借助于堆这种特殊的数据结构来实现的一种排序算法。说起堆的时候大家脑海里的第一反应就是一个树状的数据结构。其实堆是一类数据结构的统称,堆有二叉堆,二项堆,斐波那契堆,左偏树等等。 堆排序就是借助于二叉堆(binary heap)来实现的。 二叉堆是完全二叉树,同时满足堆的特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,并且每个节点的左子树和右子树都是一个二叉堆。 当父节点的值总是大于或者等于任何一个子节点的时候称为最大堆或者大顶堆、大根堆原创 2021-05-16 16:41:16 · 232 阅读 · 0 评论 -
超简单的插入排序
插入排序和冒泡、选择一样都算是一种超级简单的排序算法。插入排序名字里有个插入,它的排序算法确实和插入这个动作有关。基本思想是把数据分为两部分,一部分已经排好序,另外一部分待排序。然后将一个待排序的元素插入到已排序元素的合适位置。最终得到一个排好序的元素集合。 算法步骤 将第一个元素看为是已经排好序的集合,从二个元素开始到末尾认为是待排序集合; 从待排序集合的第一个位置拿出元素,标记为新元素; 从已排序元素集合的末尾开始往前扫描,如果元素大于新元素,则向后挪动一位; 重复步骤3,直到找到的已排序元素小于或者原创 2021-05-09 23:45:28 · 734 阅读 · 2 评论 -
什么是冒泡排序?
什么是冒泡排序? 最近开始重学算法。先从最简的冒泡排序开始。这里做个笔记方便后面复习。 对于冒泡排序算法的定义,相对于其他资料,百度百科里的介绍相对详细一点——冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降原创 2021-05-05 20:20:24 · 3614 阅读 · 0 评论 -
两数相除-kotlin
给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。 返回被除数dividend除以除数divisor得到的商。 示例1: 输入: dividend = 10, divisor = 3 输出: 3 示例2: 输入: dividend = 7, divisor = -3 输出: -2 说明: 被除数和除数均...原创 2018-12-25 14:49:05 · 6011 阅读 · 0 评论 -
括号生成(kotlin)
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n = 3,生成结果为: [ "((()))", "(()())", "(())()", "()(())", "()()()" ] 这个问题第一反应是暴力穷举。n为几,就创建几对括号,然后排列组合,去掉重复和无效的。 例如n=1,就是生成两组() 括号,编号为A1(...原创 2018-12-07 14:56:33 · 406 阅读 · 0 评论 -
删除链表的倒数第N个节点 (Java)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 思路很简单,采用双指针pre 和index,开始时两个都指...原创 2018-12-06 15:17:41 · 669 阅读 · 0 评论 -
最接近的三数之和(kotlin)
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 解法参考的是三数之和,简单修改一下就行...原创 2018-12-06 13:58:26 · 297 阅读 · 0 评论 -
三数之和(kotlin)
给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4], 满足要求的三元组集合为: [ [-1, 0, 1], [-1, -1, 2] ] 第一反应是穷举...原创 2018-12-06 11:02:25 · 404 阅读 · 0 评论 -
罗马数字转整数(kotlin)
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2018-12-05 17:02:13 · 237 阅读 · 0 评论 -
整数转罗马数字
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1...原创 2018-12-05 16:08:50 · 284 阅读 · 0 评论