![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每日一题
文章平均质量分 72
世_生
妥妥的一枚小白,喜欢记录学习笔记。
展开
-
旋转数组的最小值——二分查找
>题目描述????点击链接写题有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。例1:输入:[3,4,5,1,2]返回值:1例2:输入:[1,0,1,1,1]返回值:0例3:输入:[1,2,2,2,2]返回值:1>题解1通过线性遍历可以完成,时间复杂度O(N)>题原创 2021-09-24 17:26:34 · 212 阅读 · 0 评论 -
二维数组中的查找
>题目描述????点击这里写题描述:在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。>题解1强暴一点,就是一个一个找,时间复杂度为O(N2原创 2021-09-23 23:31:15 · 99 阅读 · 0 评论 -
155.最小栈-力扣(LeetCode)
目录55.最小栈-力扣(LeetCode)正确题解优化题解1优化题解255.最小栈-力扣(LeetCode)????155.最小栈-力扣(LeetCode)题目描述:设计push、pop、top、getMin,函数,并且可以在时间复杂度为O(1)的情况下找出最小值错误的思路:给定一个变量,来记录最小值,这种想法是错误的,我们应该要更全面的考虑问题。当我们入栈{6,5,4,3,2,1}时,每次记录最小值的变量随着每次入栈而改变,当数据全部入栈,记录最小值的变量就为1,如果在不删除数据的情况下,可以原创 2021-09-05 13:34:15 · 434 阅读 · 2 评论 -
LeetCode-学会对无序链表进行插入排序(详解)
目录前言一、对无序链表进行插入排序题链接题目描述题目思路代码1代码2总结前言请坐一、对无序链表进行插入排序题链接题目描述对链表进行插入排序。插入排序算法:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。测试样例1:输入: 4->2->1->3输出: 1->2->3->4原创 2021-04-17 17:28:23 · 515 阅读 · 1 评论 -
LeetCode-学会复杂带随机指针链表的题(详解)
目录前言一、复杂带随机指针链表题链接题目描述题目思路总结前言????这方法太棒了!一、复杂带随机指针链表题链接题目描述给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针原创 2021-04-14 21:22:47 · 982 阅读 · 4 评论 -
nowcode-学会删除链表中重复元素两题(详解)
目录前言一、删除链表中重复节点题的链接题目描述题目思路删除链表中重复的元素题链接题目描述题目思路总结前言????????路还长一、删除链表中重复节点题的链接题目描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表为1→1→2,返回1→ 2.给出的链表为1→1→2→3→3,返回1→2→3.测试样例1:输入 {1,1,2}返回值{1,2}测试样例2:输入{1,1,1}返回值{1}测试样例3:原创 2021-04-14 14:21:06 · 447 阅读 · 3 评论 -
LeetCode-学会环形链表两题(详解)
目录前言一、环形链表题链接题目描述题目思路二、环形链表进阶题链接题目描述题目思路方法二方法二链接总结前言这次题重在思路,请耐心看。一、环形链表题链接题目描述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,原创 2021-04-13 23:11:34 · 524 阅读 · 3 评论 -
学会-nowcoder-两道单链表题(详解)
目录前言一、链表回文结构题链接题目描述题目思路二、链表分割链接题目描述题目思路总结前言这两道题都有共同的地方,就是一个节点被两个节点指向,所以做的时候要注意。一、链表回文结构题链接题目描述对于一个链表,请设计一个时间复杂度为O(n),额外空间复杂度为O(1),的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。测试样例1:1->2->2->1返回:true测试样例2:原创 2021-04-12 17:01:50 · 138 阅读 · 1 评论 -
LeetCode-相交链表找节点(详解)
相交链表找节点前言一、提链接题意题思路题代码总结前言路漫漫及修远兮。一、提链接题意编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。例题一:例题二:题思路这个题用到了快慢指针,快慢指针的内容我在上一篇文章中说到了,有兴趣的可以看一下呀,言归正传。我们先算出这两条链表节点数的差,然后再让长的链表先走那个差的步数,然后两链表一起走,如果有节点相同的就是相交的节点,如果没有就走到NULL。我们先要定义两个指针,分别是slow和fast来指向这两条原创 2021-04-11 11:24:54 · 416 阅读 · 5 评论 -
leetcode-合并两个有序链表(详解)
合并两个有序链表前言一、题链接题意题思路题思路图解题代码总结前言路漫漫及修远兮。一、题链接题意将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]例题二:输入:l1 = [], l2 = []输出:[]例题三:输入:l1 = [], l2 = [0]输出:[0]题思路思路一、把一个链表移到另一个链表上。思路二、尾插。这里我是讲思路二。原创 2021-04-11 10:35:00 · 250 阅读 · 1 评论 -
链表中找某个节点(快慢指针的用法+详解)
链表中的节点前言一、提链接1号题意题思路题代码二、题链接2号题意题思路题代码总结前言路漫漫及修远兮。一、提链接1号题意给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。????输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。来源:力扣(LeetCode)输入:[1,2,3,4,5,6]输出:此列表中的结点 4 (序列化形式:[4,5,6])由于该列表有两个中间结点,值分原创 2021-04-09 22:57:44 · 1329 阅读 · 2 评论 -
移除链表元素(详解)
移除链表元素前言一、题链接二、题意三、思路1思路1图解思路1的代码四、思路2思路2图解思路2代码总结前言路漫漫及修远兮。一、题链接二、题意给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。例题一:输入:head=[1,2,3,4,5,6]; val=6;输出:[1,2,3,4,5];例题二:输入:head=[]; val=1;输出:[];例题三:输入:head={7,7,7,7,7};原创 2021-04-09 22:30:11 · 415 阅读 · 0 评论 -
搜寻旋转排序数组(详解)
已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处经旋转后可能变为 [4,5,6,6,7,0,1,2,4,4] 。给你原创 2021-04-07 17:38:47 · 282 阅读 · 1 评论 -
删除有序数组中的出现两个以上元素的重复项(详解)
每日一题前言一、题链接二、题意三、题解代码四、题解思路总结前言每日一题,开心每一天。一、题链接二、题意给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。三、题解代码下面展示一些 内联代码片。int removeDuplicates(int* nums, int numsSize){ if (numsSize <= 2原创 2021-04-07 15:20:21 · 916 阅读 · 0 评论