草庐IT

Leetcode_Master

全部标签

单链表OJ题:LeetCode--142.环形链表Ⅱ(判断第一次入环的节点)

朋友们、伙计们,我们又见面了,本期来给大家解读一下LeetCode中第142道单链表OJ题,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! 数据结构与算法专栏:数据结构与算法个 人 主 页 :stackY、C语言专栏:C语言:从入门到精通LeetCode--142.环形链表Ⅱ: https://leetcode.cn/problems/linked-list-cycle-ii/description/目录1.题目介绍2.实例演示3.解题思路4.思路验证 5.其他解题方法1.题目介绍给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 nul

多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读

本文分享自华为云社区《多主创新,让云数据库性能更卓越》,作者:GaussDB数据库。华为《TaurusMM:bringingmulti-mastertothecloud》论文被国际数据库顶会VLDB2023录用,这篇论文里讲述了符合云原生数据库特点的超燃技术。介绍了如何通过各种黑科技减少云原生数据库的网络消耗,进而提升云原生数据库的性能和稳定性。下面就让我们抽丝剥茧,细细品味技术的魅力,揭开华为云数据库多主技术的面纱。说明:技术论文中的Taurus在华为云商用的产品名是GaussDB(forMySQL),是GaussDB(forMySQL)的云原生架构技术版本。引言现下,大型高性能数据库通常采

LeetCode - #146 LRU 缓存(Top 100)

前言本题为LeetCode前100高频题我们社区陆续会将顾毅(Netflix增长黑客,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到145期,我们会保持更新时间和进度(周一、周三、周五早上9:00发布),每期的内容不多,我们希望大家可以在上班路上阅读,长久积累会有很大提升。不积跬步,无以至千里;不积小流,无以成江海,Swift社区伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。难度水平:中等1.描述请你设计并实现一个满足LRU(最近最少使用)缓存约束的数据结构。实现LRUCa

动态规划 0(斐波那切数列 leetcode 509)

思想动态规划的核心思想是分治,将复杂问题转换成子问题,通过子问题的迭代逐渐逼近真实问题。这个过程拆解为:(1)根据问题寻找状态(2)定义dp数组(3)明确如何选择,即状态转移方程(4)明确basecase和初始值实例斐波那切数列leetcode509一个数列由0和1开始,后面每一项数字都是前面两项数字的和。状态这是一个简单示例,问题中没有任何干扰信息,只有数字的值,状态也就是数字的值。dp数组状态是数字的值,dp数组存储状态即可。这里要注意的是dp数组下标和数字的项的关系。一种方式是二者同步,下标是从0开始的,数字的项定义为输入的n值,n>=0。[0,1]是dp数组的前两项,代表的含义是输入值

【算法——双指针】LeetCode 11 盛最多水的容器

题目描述:解题思路:        如图所示:        1、我们考虑相距最远的两个柱子所能容纳水的面积。宽度是两根柱子之间的距离8;高度取决于两根柱子之间较短的那个,即左边柱子的高度3。水的面积就是3×8=24。        2、如果选择固定一根柱子,另外一根变化,水的面积变化:当前柱子是最两侧的柱子,水的宽度为最大,其它的组合,水的宽度都比这个小。左边柱子较短,决定了水的高度为3。如果移动左边的柱子,新的水面高度不确定,一定不会超过右边的柱子高度7。 如果移动右边的柱子,新的水面高度一定不会超过左边的柱子高度3,也就是不会超过现在的水面高度。        3、因此,如果固定左边的柱

python LeetCode 刷题记录 21

题目将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。注意:是链表代码classSolution:defmergeTwoLists(self,l1:Optional[ListNode],l2:Optional[ListNode])->Optional[ListNode]:ifl1andl2:ifl1.val>l2.val:l1,l2=l2,l1l1.next=self.mergeTwoLists(l1.next,l2)returnl1orl2使用递归,比较头节点,将小的头节点指向取出,将剩下的两个链表继续传入函数,将小的头节点指向函数返回的链表。链表基

LeetCode-给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。语法JAVA实现classSolution{publicint[]twoSum(int[]nums,inttarget){if(nums==null)returnnull;//哈希表key是nums[i]values是IMapmap=newHashMap();for(inti=0;iLeetCodereturnnewint[]{ma

算法leetcode|80. 删除有序数组中的重复项 II(rust重拳出击)

文章目录80.删除有序数组中的重复项II:样例1:样例2:提示:分析:题解:rust:go:c++:python:java:80.删除有序数组中的重复项II:给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下://nums是以“引用”方式传递的。也就是说,不对实参做任何拷贝intlen=

【LeetCode】剑指 Offer <二刷>(3)

目录题目:剑指Offer06.从尾到头打印链表-力扣(LeetCode)题目的接口:解题思路:代码:过啦!!!题目:剑指Offer07.重建二叉树-力扣(LeetCode)题目的接口:解题思路:代码:过啦!!!写在最后:题目:剑指Offer06.从尾到头打印链表-力扣(LeetCode)题目的接口:/***Definitionforsingly-linkedlist.*typeListNodestruct{*Valint*Next*ListNode*}*/funcreversePrint(head*ListNode)[]int{}解题思路:这道题我读完之后想到了两种思路,1、直接从后往前去链表

LeetCode:719. 找出第 K 小的数对距离

问题链接719.找出第K小的数对距离问题描述数对(a,b)由整数a和b组成,其数对距离定义为a和b的绝对差值。给你一个整数数组nums和一个整数k,数对由nums[i]和nums[j]组成且满足0。返回所有数对距离中第k小的数对距离。提示:n==nums.length24061示例示例1输入:nums=[1,3,1],k=1输出:0解释:数对和对应的距离如下:(1,3)->2(1,1)->0(3,1)->2距离第1小的数对是(1,1),距离为0。示例2输入:nums=[1,1,1],k=2输出:0示例3输入:nums=[1,6,1],k=3输出:5解题思路看一下提示的范围,就知道暴力破解直接没