E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
LeetCode-数据结构基础
【
leetcode-
链表】扁平化多级双向链表
【
leetcode-
链表】扁平化多级双向链表题目:多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。
程序员小2
·
2024-01-18 11:58
leetcode-
二叉树的最小深度
111.二叉树的最小深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defminDepth(self,root:Optional[TreeNod
独孤--蝴蝶
·
2024-01-17 09:01
leetcode
leetcode-
路径总和
112.路径总和#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defhasPathSum(self,root:Optional[TreeNode]
独孤--蝴蝶
·
2024-01-17 09:23
leetcode
【
leetcode-
字符串】单词拆分
【
leetcode-
字符串】单词拆分题目:给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。
程序员小2
·
2024-01-17 08:23
那些年,面试中常见的
数据结构基础
和算法题(上)
前言作为一个多年的老菜鸟,有感于大部分的公司面试“面试造航母,工作螺丝钉”的作风,特整理了这个数据结构和算法面试题系列。对于校招而言,如果没有太多实践/实习经验,大公司往往喜欢考察数据结构和算法,如微软就特别喜欢在校招时手写算法题,而且难度还不小,当年我毕业找工作时也是颇受折磨。从第一篇文章到现在完成已然一个多月了,经@掘金-yuzu柚子茶的殷勤的催稿,终于在今天基本完成了。近一个月的业余时间全在
WGH100817
·
2024-01-16 14:23
指针必刷题(C语言指针就该这么学)【
数据结构基础
】【C语言指针必刷题】
前言:必备知识回忆1.数组名的意义i.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小ii.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址iii.除此之外,所有的数组名都表示首元素的地址。2.数组与指针的关系对于数组和指针操作来说,a[i]和*(a+i)是等效的,也就是说,a[i]其实就是*(a+i)的简写形式。因此,p[0]实际上就相当于*(p+0),它表示p
accompany_zhao
·
2024-01-16 01:35
C语言必刷题
数据结构
java
算法
leetcode-
二叉树的最大深度
104.二叉树的最大深度#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defmaxDepth(self,root:Optional[TreeNod
独孤--蝴蝶
·
2024-01-15 16:49
leetcode
leetcode-
删除排序链表中的重复元素
83.删除排序链表中的重复元素题解:要删除一个已排序链表中的所有重复元素,从而使每个元素只出现一次,我们可以使用一个指针来遍历这个链表,同时比较当前节点和它下一个节点的值。如果它们相等,我们就删除下一个节点,如果不相等,我们就移动指针。注:本题使用的是虚拟头节点#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
合并两个有序数组
88.合并两个有序数组题解:这是一个经典的双指针问题,我们可以使用两个指针分别指向nums1和nums2的最后一个元素,然后比较两个指针所指向的元素大小,将较大的元素放入nums1的末尾,并将对应的指针向前移动一位。重复这个过程,直到nums2的所有元素都被放入nums1中。classSolution:defmerge(self,nums1:List[int],m:int,nums2:List[i
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
对称二叉树
101.对称二叉树题解:首先我们要清楚,对称二叉树,比较的不是左右节点,而是根节点的左右子树是不是相互翻转的。比较的是两个树。就是说左子树的左节点和右子树的右节点做比较,左子树的右节点和右子树的左节点做比较。我们使用递归方法。1.递归函数的参数和返回值前面已经说过了,比较的是两个树,自然是左子树和右子树节点返回值是bool类型compare(left,right)2.终止条件节点为空的情况左节点为
独孤--蝴蝶
·
2024-01-15 16:19
leetcode
leetcode-
二进制求和
67.二进制求和classSolution:defaddBinary(self,a:str,b:str)->str:result=''carry=0foriinrange(max(len(a),len(b))):a_bit=a[-(i+1)]ifi
独孤--蝴蝶
·
2024-01-15 16:18
leetcode
leetcode-
移除元素
27.移除元素此题和26.删除有序数组中的重复项题是一样的,都使用快慢指针classSolution:defremoveElement(self,nums:List[int],val:int)->int:slow=0forfastinrange(len(nums)):ifval!=nums[fast]:nums[slow]=nums[fast]slow+=1returnslow
独孤--蝴蝶
·
2024-01-15 16:48
leetcode
leetcode-
平衡二叉树
110.平衡二叉树#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defisBalanced(self,root:Optional[TreeNode
独孤--蝴蝶
·
2024-01-15 16:47
leetcode
leetcode-
将有序数组转换为二叉搜索树
108.将有序数组转换为二叉搜索树二叉搜索树的定义:首先它是有序树若其左子树不空,则左子树上所有节点的值均小于它的根节点的值若其右子树不空,则右子树上所有节点的值均大于它的根节点的值它的左、右子树也分别为二叉搜索树此题的题目中还强调了一点,高度平衡,这就需要知道平衡二叉树的概念:左子树和右子树的高度之差的绝对值不超过1左右子树都是平衡二叉树左右子树都是二叉搜索树#Definitionforabin
独孤--蝴蝶
·
2024-01-15 06:23
leetcode
[数据结构与算法]
数据结构基础
、排序算法详解、算法思想详解、领域算法详解------
#
数据结构基础
学习思路避免孤立的学习知识点,要关联学习。
奥耶可乐冰
·
2024-01-14 16:01
云计算
开发语言
算法
数据结构
链表
b树
leetcode
数据结构基础
--线性表的链式存储(单链表)
链表概述链表是一种很常见的数据结构,它的元素个数不受限制,当进行添加元素的时候存储的个数会随之改变,链表的优点:在运行时确定大小,能够快速的插入和删除数据,链表的缺点:不能随机访问,用户必须提供编程支持。链表分为单链表,单向循环链表、双链表、双向循环链表,这篇文章主要讲述的是单链表。在学习单链表之前我们先来了解几个概念性内容头结点:头结点的数据域可以不存储任何信息,头结点的域存储指向第一个结点的指
HardCabbage
·
2024-01-14 05:48
算法-
leetcode-
数组问题- 48. 旋转图像
文章目录旋转图像思路1:先行转列,再进行行内前后替换即可思路2:把matrix分成四部分:左上,右上,右下,左下四部分,一次旋转即可思路2优化:不用tmp存储直接交换即可旋转图像https://leetcode-cn.com/problems/rotate-image/思路1:先行转列,再进行行内前后替换即可第一步:矩阵转置,也就是行转列第二步:每一行进行对称对调packagecom.shangg
程序员不二
·
2024-01-12 07:28
算法
java
算法
leetcode
LeetCode-
好数对的数目
LeetCode-
好数对的数目题目描述给你一个整数数组nums。如果一组数字(i,j)满足nums[i]==nums[j]且i
抓起的第一个娃娃
·
2024-01-12 04:22
python
LeetCode
leetcode
LeetCode-
刷题 1512 好数对的数目
LeetCode-
刷题1512好数对的数目题目概述示例方法代码结果思考题目概述链接:link.给你一个整数数组nums。
XxxLittleOne
·
2024-01-12 04:52
LeetCode刷题记录
leetcode
动态规划
算法
实战PHP
数据结构基础
之双链表
上一篇实战PHP
数据结构基础
之单链表说到单链表由一个一个的作为节点的对象构成的,每一个节点都有指向下一个节点的指针,最后一个节点的指针域指向空。每个节点可以存储任何数据类型。
萧潇在jianshu
·
2024-01-11 11:31
leetcode-
二叉树的最大深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度3。代码/***Definitionforabinarytreenode.*functionTreeNode(val){*this.val=val;*this.left=th
8239e604d437
·
2024-01-11 07:36
LeetCode-
搜索插入位置(35)
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为O(logn)的算法。思路:给定数组查找指定元素值的索引,如果元素值不存在于数组,就返回被顺序插入位置,并且时间复杂度要求O(logn),那么很自然就能想到使用二分查找,当二分查找找不到元素值时后面再去考虑顺序插入的情况。如果原数组不包括给定的元素
炙热的大叔
·
2024-01-11 00:44
leetcode
算法
LeetCode-
字符串转换整数atoi(8)
题目描述:请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数myAtoi(strings)的算法如下:读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结
炙热的大叔
·
2024-01-11 00:14
leetcode
算法
LeetCode-
棒球比赛(682)
题目描述:你现在是一场采用特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。比赛开始时,记录是空白的。你会得到一个记录操作的字符串列表ops,其中ops[i]是你需要记录的第i项操作,ops遵循下述规则:整数x-表示本回合新获得分数x“+”-表示本回合新获得的得分是前两次得分的总和。题目数据保证记录此操作时前面总是存在两个有效的分数。“D”-表示本回合新
炙热的大叔
·
2024-01-11 00:41
leetcode
算法
算法-
leetcode-
滑动窗口问题- 438. 找到字符串中所有字母异位词
文章目录12,`438.找到字符串中所有字母异位词`思路1:暴力法思路2:滑动窗口法12,438.找到字符串中所有字母异位词https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/思路1:暴力法思路2:滑动窗口法packagecom.shangguigu.dachang.algrithm.A04_SlidingWindow;im
程序员不二
·
2024-01-10 15:53
算法
java
算法
leetcode
LeetCode-
面试题16.25 LRU缓存机制题解
运用你所掌握的数据结构,设计和实现一个LRU(最近最少使用)缓存机制。实现LRUCache类:LRUCache(intcapacity)以正整数作为容量capacity初始化LRU缓存intget(intkey)如果关键字key存在于缓存中,则返回关键字的值,否则返回-1。voidput(intkey,intvalue)如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」
飞翔的乌龟
·
2024-01-10 07:18
Java
数据结构与算法
java
链表
数据结构
hashmap
LeetCode-
重复的子字符串(459)
题目描述:给定一个非空的字符串s,检查是否可以通过由它的一个子串重复多次构成。思路一:使用枚举的方法。首先因为字符串s有一个子串重复多次构成,那么s的长度len与子串的长度subLen应该成倍数关系,并且在s中索引为i的字符应该与索引为i+subLen的字符相等。根据这些我们可以首先设置一个循环对从1到len/2的子串长度进行处理(因为子串至少重复一次所以最大长度为len/2),接着判断子串长度是
炙热的大叔
·
2024-01-08 11:51
leetcode
算法
LeetCode-
移动零(283)
题目描述:给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。请注意,必须在不复制数组的情况下原地对数组进行操作。思路:这里的思路跟以前做过的去重复数字的思路有点像,快指针也就是for循环中的i遍历元素,慢指针也就是count指向存储元素得到位置,当然只有当遍历的数字不是0的时候才会存储该数字至count指向的位置,并且count+1。完成存储的for循环之后,
炙热的大叔
·
2024-01-08 11:51
leetcode
算法
数据结构
LeetCode-
加一(66)
题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。思路:这里主要分三种情况,第一种全是9就要扩大数字尺寸然后0位置为1其他位置值为0,第二种情况末尾位置数字小于9,直接将末尾位置数字加一即可,第三种可能尾部出现连续的9,同理尾部置0,直至倒数最后一个9的位置,并且在此
炙热的大叔
·
2024-01-08 11:20
leetcode
算法
数据结构
阿里P9整理出千页笔记:Java程序设计与
数据结构基础
+进阶
Java是一门伟大的程序设计语言,同时,它还指基于Java语言的从嵌入式开发到企业级开发的平台。从20世纪90年代诞生至今,Java凭借其优秀的语言和平台设计,以及适合互联网应用的“一次编译,到处运行”的跨平台特性,在Web应用、移动计算、云计算、大数据、物联网、可穿戴设备等新兴技术领域,得到了极其广泛的应用。除此之外,Java还是一门设计优秀的教学语言。它是一门经典的面向对象编程语言,拥有优雅和
头顶假发
·
2024-01-08 09:46
Java
编程
程序员
java
数据结构
开发语言
LeetCode-
合并两个有序链表
题目链接=>戳这里题目截图解法/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(intx){val=x;}*}*/classSolution{publicListNodemergeTwoLists(ListNodel1,ListNodel2){ListNodemergeLi
沙漠小舟
·
2024-01-07 22:32
leetcode-
双指针
leetcode-
双指针双指针1、有序数组-题号167两数之和2、两数平方和-题号6333、反转字符串中的元音字符-题号3454、验证回文字符串-题号6805、合并两个有序数组-题号886、环形链表-题目
Kuches
·
2024-01-07 19:24
leetcode
c++
LeetCode-
数组-双指针-中等难度
文章目录双指针1.删除有序数组中的重复项(入门)1.1题目描述1.2解题思路1.3代码实现2.删除有序数组中的重复项II(简单)2.1题目描述2.2解题思路2.3代码实现3.移动零(简单)3.1题目描述3.2代码实现4.两数之和(入门)4.1题目描述4.2解题思路4.3代码实现5.盛水最多的容器(中等)5.1题目描述5.2解题思路5.3代码实现6.三数之和(中等)6.1题目描述6.2解题思路6.3
码拉松
·
2024-01-07 16:45
Leetcode
leetcode
算法
leetcode-
字母异位词
241-有效的字母异位词给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。核心思路:用哈希表或数组来记录每个字符出现的次数,并一一进行比较。方法一:数组boolisAnagram(strings,stringt){if(s.size()!=t.size())returnfalse;intnum[128];//ASCA
Emperorist
·
2024-01-07 13:55
哈希表
数组
leetcode
算法
LeetCode-
整数反转(7)
题目描述:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−231,231−1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。思路:题目首先要求要对整数进行反转,那么我们可以使用一个while循环即可完成操作,每次循环使用一个变量接收整数模10的运算结果,然后使用一个变量来接收反转的结果,因为我们已经有模10的结果了,那么只
炙热的大叔
·
2024-01-07 13:24
leetcode
算法
Leetcode-
有效的字母异位词C++实现
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。哈希表实现:classSolution{public:boolisAnagram(strings,stringt){unordered_mapmap;if(s.size()!=t.size())returnfalse;for(inti=0;i::iteratorit=
Vanderbiol
·
2024-01-07 13:23
leetcode
算法
职场和发展
LeetCode-
有效的字母异位词(242)
题目描述:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。思路:这题还是比较简单的,首先将两个字符串转为两个字符数组,之后对两个数组分别排序,最终返回两个数组是否相等的判断结果即可。能这么做是因为s、t异位的话排序之后是相等的,如果不符合异位,那么排序之后是不等的。代码:classSolution{publicbo
炙热的大叔
·
2024-01-07 13:53
leetcode
算法
LeetCode-
最长子序列
/***@authorwx*@description最长子序列*@create2023/12/26**/publicclassLongestConsecutive{publicstaticvoidmain(String[]args){int[]arr=newint[]{100,4,200,1,3,2};intresult=longestConsecutive(arr);System.out.pri
xinCode79
·
2024-01-07 05:42
数据结构和算法
leetcode
java
算法
LeetCode-
杨辉三角公式
杨辉三角公式![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a225ff66061e4076924e3299b81b98d5.png/***@authorwx*@description杨辉三角公式-标准*@create2023/12/26**/publicclassTriangle{publicstaticvoidmain(String[]args)
xinCode79
·
2024-01-07 05:11
数据结构和算法
leetcode
算法
LeetCode-
无重复字符的最长子串(3)
题目描述:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。代码:classSolution{publicintlengthOfLongestSubstring(Strings){Setocc=newHashSet();intlen=s.length();intrk=0,ans=0;for(inti=0;i
炙热的大叔
·
2024-01-06 00:58
leetcode
算法
除数博弈
++){if(N%i==0){N=N-i;count++;break;}}}if(count%2==1)returntrue;elsereturnfalse;}};运行结果:原题链接:https://
leetcode
WAI_f
·
2024-01-05 10:41
leetcode-
链表
总结:主要是迭代(遍历)和递归。迭代遍历的话一般可能用的多的是双指针,快慢指针,三指针(pre,cur,next)这些,最好画图理清链表节点next域的指向要如何修改,相交链表、环这种问题适合尝试双指针。因为链表的遍历查询只能从头节点一次向后遍历,所以检索的效率不高,这时时间复杂度为O(1)的哈希表可以发挥作用。递归的话则是将问题拆成小问题了,主要时考虑清楚每一个节点是如何处理的,最好也是画图分析
weixin_43852091
·
2024-01-04 23:42
leetcode
链表
leetcode
数据结构
算法(21)-
leetcode-
剑指offer5
leetcode-
剑指offer-443.面试题43-1~n整数中1出现的次数44.面试题44-数字序列中某一位的数字45.面试题45-把数组排成最小的数-快排变种46.面试题46-把数字翻译成字符串47
小陈同学-陈百万
·
2024-01-04 23:11
算法题
【
LeetCode-
剑指offer】-- 24.反转链表
24.反转链表/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){this.val=val;this.next=next;}*}*/classS
小d<>
·
2024-01-04 23:10
#
剑指offer
leetcode
算法
【
LeetCode-
剑指offer】-- 21.删除链表的倒数第N个结点
21.删除链表的倒数第N个结点方法:计算链表长度/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){this.val=val;this.next
小d<>
·
2024-01-04 23:10
#
剑指offer
leetcode
算法
【
LeetCode-
剑指offer】--19.验证回文串II
19.验证回文串II方法:双指针首先考虑如果不允许删除字符,如何判断一个字符串是否是回文串。常见的做法是使用双指针。定义左右指针,初始时分别指向字符串的第一个字符和最后一个字符,每次判断左右指针指向的字符是否相同,如果不相同,则不是回文串;如果相同,则将左右指针都往中间移动一位,直到左右指针相遇,则字符串是回文串在允许最多删除一个字符的情况下,同样可以使用双指针,通过贪心实现。初始化两个指针low
小d<>
·
2024-01-04 23:40
#
剑指offer
leetcode
算法
【Golang】
LeetCode-
剑指Offer-面试题52-两个链表的第一个公共节点【两种解法】
题目输入两个链表,找出它们的第一个公共节点。公共节点不是指节点的值相同,而是两条链中的节点在同一个内存地址。如下面的两个链表:在节点c1开始相交。示例1:输入:intersectVal=8,listA=[4,1,8,4,5],listB=[5,0,1,8,4,5],skipA=2,skipB=3输出:Referenceofthenodewithvalue=8输入解释:相交节点的值为8(注意,如果两
士多啤梨先生
·
2024-01-04 23:39
LeetCode力扣个人题解
链表
leetcode
go
golang
面试
LeetCode-
剑指 Offer 题目集
19、20、28、33、34、36、37、38、38、43VS44、47、48、53-II、54、55-II、57-II、59-II、63、68-II题号题目题解链接标签备注遍数03数组中重复的数字【
LeetCode
白露塞纳
·
2024-01-04 23:35
单例模式
java
开发语言
leetcode-
剑指 Offer 52. 两个链表的第一个公共节点
leetcode-
剑指Offer52.两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点c1开始相交。
ITAK_fans
·
2024-01-04 23:35
剑指offer
链表
指针
LeetCode-
剑指 Offer 52-两个链表的第一个公共节点
剑指Offer52.两个链表的第一个公共节点题目说明输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点c1开始相交。示例示例1:输入:intersectVal=8,listA=[4,1,8,4,5],listB=[5,0,1,8,4,5],skipA=2,skipB=3输出:Referenceofthenodewithvalue=8输入解释:相交节点的值为8(注意,如果两个列表相交则
LQZme
·
2024-01-04 23:35
LeetCode
剑指Offer
链表
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他