2021年10月29日

leetcode-链表系列-链表去重(leetcode 83)

摘要: 83. 删除排序链表中的重复元素存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。题解: 列表去重,一般区分有序数组还是无序数组,针对有序链表的去重,可以采用双指针中的快慢指针, 当快指针不等于慢指针时,将快指针的值赋值于慢指针,慢指针向前 阅读全文

posted @ 2021-10-29 17:28 random_boy 阅读(174) 评论(0) 推荐(2)

分治算法——归并算法的总结

摘要: 分治算法:将总体分成多个子集,然后合并子集,多少采用递归的方式。采用分治算法的案例有:归并排序【数组/链表】,多个有序数组、链表的排序等。其中比较有代表的是:1. 数组的归并排序 leetcode 912. 排序数组 代码如下:https://www.cnblogs.com/tomorrow-hop 阅读全文

posted @ 2021-10-29 11:23 random_boy 阅读(68) 评论(0) 推荐(0)

leetcode23. 合并K个升序链表

摘要: 23. 合并K个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1- 阅读全文

posted @ 2021-10-29 11:22 random_boy 阅读(35) 评论(0) 推荐(0)

剑指 Offer 51. 数组中的逆序对

摘要: 剑指 Offer 51. 数组中的逆序对在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000题解:参照https://zhuanlan.zh 阅读全文

posted @ 2021-10-29 11:16 random_boy 阅读(12) 评论(0) 推荐(0)

剑指 Offer II 077. 链表排序

摘要: 剑指 Offer II 077. 链表排序 给定链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 解题代码: class ListNode(object): def __init__(self, val=0, next=None): self.val = val self.ne 阅读全文

posted @ 2021-10-29 11:00 random_boy 阅读(66) 评论(0) 推荐(0)

leetcode 148. 排序链表

摘要: leetcode 148 链表的排序给你链表的头结点head,请将其按 升序 排列并返回 排序后的链表.进阶:你可以在 时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]解题说明:本题直接考虑归并排序,首先利用快慢指针,其中快指 阅读全文

posted @ 2021-10-29 10:56 random_boy 阅读(48) 评论(0) 推荐(0)

leetcode 912. 排序数组

摘要: 数组的归并排序实质就是分治算法,归并排序主要的思想就是分治,将总体分成多个子集,然后合并子集,多数采用递归的方式。在归并培训中,需要考虑不同的编程语言,不同的取值范围。这种思路也可以用在有序数组的合并,其中,合并算法不变,只是分治过程中略微修改一下即可。其代码如下: 原题如下:912. 排序数组给你 阅读全文

posted @ 2021-10-29 10:29 random_boy 阅读(34) 评论(0) 推荐(0)

导航