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
剑指offer做题笔记
LeetCode-剑指 Offer 题目集
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-
剑指Offer
52.两个链表的第一个公共节点输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点c1开始相交。
ITAK_fans
·
2024-01-04 23:35
剑指offer
链表
指针
LeetCode-剑指 Offer 52-两个链表的第一个公共节点
剑指Offer
52.两个链表的第一个公共节点题目说明输入两个链表,找出它们的第一个公共节点。如下面的两个链表:在节点c1开始相交。
LQZme
·
2024-01-04 23:35
LeetCode
剑指Offer
链表
【LeetCode-
剑指offer
】-- 23.相交链表
23.相交链表方法一:哈希集合/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(intx){*val=x;*next=null;*}*}*/publicclassSolution{publicListNodegetIntersectionNode(ListNodeheadA
小d<>
·
2024-01-04 23:04
#
剑指offer
leetcode
链表
算法
寻找目标值(二维数组中的查找),
剑指offer
04,力扣
力扣原题地址:LCR121.寻找目标值-二维数组-力扣(LeetCode)今天刷寻找目标值(二维数组中的查找),大家有兴趣可以点上看看题目要求,试着做一下。我们直接看题解吧:方法2,利用二叉搜索树审题目+事例+提示:题目意思是这个二维数组每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序思路(二叉搜索树):根节点对应的元素是左下角与右上角的两个元素,若以左下角为例:1、从左下角
大数据SQLboy
·
2024-01-04 18:50
剑指offer
#
数组
算法
数据结构
剑指Offer
|| 054.把二叉搜索树转换为累加树
题目给定一个二叉搜索树,请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键小于节点键的节点。节点的右子树仅包含键大于节点键的节点。左右子树也必须是二叉搜索树。示例1:输入:root=[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]输出:[30,36,21,36,35,26,
Mar_mxs
·
2024-01-04 18:49
leetcode刷题
深度优先
算法
《
剑指offer
》数学第一题:数值的整数次方
题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。思路:给定一个浮点数求它的整数次方。要考虑到所有的情况,关于指数,如果是0,则结果是1;指数是1,结果是base;指数是-1,结果是1.0/base。我们在计算一个数的多次幂时,可以先判断其幂次的奇偶性,然后:如果幂次为偶直接base(底数)作平方,power(幂次)除以2。如果
y6533
·
2024-01-04 13:30
算法
java
数据结构
《
剑指offer
》 递归和循环第四题:
题目描述:我们可以用2X1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2X1的小矩形无重叠地覆盖一个2Xn的大矩形,总共有多少种方法?思路:这个题的本质是斐波那契数列,如何将这个题理解为斐波那契数列,我的思路是这样的:考虑最后一列的情况,最后一列的两个小矩形可以竖着放,也可以横着放。如果最后一个小矩形竖着放,那么前面的所有小矩形可以覆盖2行n-1列的部分,记为f(n-1)。如果最后一个小矩形横
y6533
·
2024-01-04 13:30
算法
java
数据结构
《
剑指offer
》 递归和循环第三题:变态跳台阶
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路:青蛙有两种选择:跳一级或者跳两级。如果跳一级,则还剩下n-1级台阶需要跳,这时青蛙又面临着跳一级或者跳两级的选择;如果跳两级,则还剩下n-2级台阶需要跳,这时青蛙又面临着跳一级或者跳两级的选择。以此类推,每次跳跃青蛙都有两种选择,一直到最后一步跳上第n级台阶。即青蛙跳上
y6533
·
2024-01-04 13:00
算法
java
数据结构
《
剑指offer
》 链表第四题:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。
思路:有两种方法,一种是非递归方法(双指针法),另一种是递归法。classListlcz4//非递归{classNode{intval;Nodenext;Node(intval){this.val=val;}}publicNodejoin(Nodelist1,Nodelist2){if(list1==null)returnlist2;if(list2==null)returnlist1;if(li
y6533
·
2024-01-04 13:59
java
数据结构
链表
《
剑指offer
》 链表第八题: 删除链表中连续重复的节点。
题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。例如,链表1->2->3->3->4->4->5处理后为1->2->5。思路:这题的关键在于判断循环的条件,一定要捋清楚,while循环是总的一个循环,而while里的另一个while循环才是判断这个节点的值是否连续重复,如果重复,则一直将当前重复的节点指向下一个,直到下一个节点与当前节点不相
y6533
·
2024-01-04 13:59
链表
数据结构
《
剑指offer
》 字符串第一题:替换空格
题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如:当字符串为“WeAreHappy",经过替换后为"We%20Are%20Happy"。解题思路:本题有两种思路。一种是创建一个新的并且为空的字符串来继承原字符串,一遇到空格则立马替换为%20,其他情况则继承原字符串的内容。publicStringinstead(Strings){if(s==null)returnnull;S
y6533
·
2024-01-04 13:59
算法
java
数据结构
《
剑指offer
》 链表第一题:从尾到头打印链表
//写在开头,博主是一名大专学生大一生,由于从九月份开始学习算法,但是一直处在理论学习,经老师推荐刷《
剑指offer
》,备战明年的蓝桥杯java组,写博客以此来记录学习之路,由于博主没有任何算法基础,从零开始学习
y6533
·
2024-01-04 13:29
链表
数据结构
java
《
剑指offer
》链表第三题:反转链表
此题有两种思路,一种是用三指针法,另一张是递归思想。以下是三指针法的解法:package链表;classListNode1{classNode{intval;Nodenext;Node(intval){this.val=val;}}publicNoderollback(Nodenode1){if(node1==null)returnnull;Nodeprev=null;Nodecur=node1;
y6533
·
2024-01-04 13:29
链表
数据结构
《
剑指offer
》数学第二题:求1+2+3+...+n
题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路:我们可以用递归和短路运算符来进行运算,具体代码如下。代码实现:package数学;importjava.util.Scanner;publicclassMath2{publicintsolution(intn){if(n==0)return0
y6533
·
2024-01-04 13:43
算法
(双指针 子数组)剑指 Offer 48. 最长不含重复字符的子字符串
剑指Offer
48.最长不含重复字符的子字符串classSolution{public:intlengthOfLongestSubstring(strings){intcnt[300];memset(cnt
来到了没有知识的荒原
·
2024-01-04 11:23
剑指 Offer(第2版)面试题 68:树中两个结点的最低公共祖先
剑指Offer
(第2版)面试题68:树中两个结点的最低公共祖先
剑指Offer
(第2版)面试题68:树中两个结点的最低公共祖先解法1:递归拓展题:二叉搜索树的最近公共祖先解法1:两次遍历解法2:一次遍历
剑指
UestcXiye
·
2024-01-04 09:48
剑指
Offer
C++
剑指Offer
数据结构
算法
二叉树
递归
先序遍历
剑指 Offer(第2版)面试题 67:把字符串转换成整数
剑指Offer
(第2版)面试题67:把字符串转换成整数
剑指Offer
(第2版)面试题67:把字符串转换成整数解法1:模拟
剑指Offer
(第2版)面试题67:把字符串转换成整数题目来源:87.把字符串转换成整数解法
UestcXiye
·
2024-01-04 09:17
剑指
Offer
C++
剑指Offer
数据结构与算法
字符串
【LeetCode-
剑指offer
】-- 13.二维区域和检索-矩阵不可变
13.二维区域和检索-矩阵不可变方法:一维前缀和初始化时对矩阵的每一行计算前缀和,检索时对二维区域中的每一行计算子数组和,然后对每一行的子数组和计算总和。具体实现方面,创建m行n+1列的二维数组sums,其中m和n分别是矩阵matrix的行数和列数,sums[i]为matrix[i]的前缀和数组。将sums的列数设为n+1的目的是为了方便计算每一行的子数组和,不需要对col1=0的情况特殊处理。c
小d<>
·
2024-01-04 07:18
#
剑指offer
leetcode
算法
Leetcode-递归
文章目录q21合并两个有序链表q101对称二叉树q104二叉树的最大深度q226翻转二叉树q236二叉树的最近公共祖先
剑指Offer
10-I.斐波那契数列
剑指Offer
10-II.青蛙跳台阶问题q21合并两个有序链表题目传送门题解可以使用递归和迭代两种方法进行求解
jenrain
·
2024-01-04 05:39
LeetCode
leetcode
python数据结构
剑指offer
-重建二叉树
例题描述给定节点数为n的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,5,3,6,7}和中序遍历序列{4,2,5,1,6,3,7},则重建出如下图所示。解决思路因为先序遍历根中序遍历是保存在数组中的,所以我们需要利用数组的性质,而不是上来就利用二叉树的性质,刚开始我是按照二叉树来做的,直到我失败了无数次之后,看到了函数的传入值是两个list,我
漫漫行程路
·
2024-01-04 01:01
python数据结构
数据结构
python
算法
java数据结构与算法刷题-----LeetCode746. 使用最小花费爬楼梯
java数据结构与算法刷题目录(
剑指Offer
、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article
殷丿grd_志鹏
·
2024-01-03 22:05
算法
java
算法
leetcode
java数据结构与算法刷题-----LeetCode70. 爬楼梯
java数据结构与算法刷题目录(
剑指Offer
、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article
殷丿grd_志鹏
·
2024-01-03 22:35
算法
java
leetcode
算法
java数据结构与算法刷题-----LeetCode509. 斐波那契数
java数据结构与算法刷题目录(
剑指Offer
、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article
殷丿grd_志鹏
·
2024-01-03 22:02
算法
java
leetcode
算法
【LeetCode-
剑指offer
】--16.无重复字符的最长子串
16.无重复字符的最长子串方法:滑动窗口classSolution{publicintlengthOfLongestSubstring(Strings){intn=s.length();Setset=newHashSet<>();intl=0,ans=0;for(inti=0;i
小d<>
·
2024-01-03 18:36
#
剑指offer
leetcode
算法
【LeetCode-
剑指offer
】--15.找到字符串中所有字母异位词
15.找到字符串中所有字母异位词方法:滑动窗口classSolution{publicListfindAnagrams(Strings,Stringp){Listans=newArrayListm){returnans;}int[]cnt1=newint[26];int[]cnt2=newint[26];for(inti=0;i
小d<>
·
2024-01-03 18:06
#
剑指offer
leetcode
算法
【LeetCode-
剑指offer
】-- 14.字符串的排列
14.字符串的排列方法:滑动窗口classSolution{publicbooleancheckInclusion(Strings1,Strings2){intm=s1.length(),n=s2.length();if(m>n){returnfalse;}int[]cnt1=newint[26];int[]cnt2=newint[26];for(inti=0;i
小d<>
·
2024-01-03 18:05
#
剑指offer
leetcode
算法
【LeetCode-
剑指offer
】-- 9.乘积小于K的子数组
9.乘积小于K的子数组方法:滑动窗口关于为什么子数组数目为j-1+1。这时候就要理解采用滑动窗口的思路其实是枚举子数组的右端点,然后来找到满足条件的最小左端点。也即当得到满足条件的窗口时,就意味着得到了以j作为右端点时满足条件的左端点的最小值。那么此时满足条件的子数组个数当然就等于窗口能所有能作为左端点的位置个数,即j-i+1。classSolution{publicintnumSubarrayP
小d<>
·
2024-01-03 18:31
#
剑指offer
leetcode
算法
剑指Offer
- 14 - 链表中倒数第k个结点
题目描述链表中倒数第k个结点输入一个链表,输出该链表中倒数第k个结点。思路准备两个指针,第一个指向头,让第二个先往后走k步,之后再同时走,当第二个指针到达尾部时第一个指针指向的刚好就是倒数第k个节点CodePython#-*-coding:utf-8-*-#classListNode:#def__init__(self,x):#self.val=x#self.next=NoneclassSolut
vouv
·
2024-01-03 12:19
LeetCode 练习——关于查找数组元素之和的两道题
1.数组中和为0的三个数1.1题目描述
剑指Offer
II006.排序数组中两个数字之和给定一个已按照升序排列的整数数组numbers,请你从数组中找出两个数满足相加之和等于目标数target。
SK_Jaco
·
2024-01-03 02:37
2022-01-12
IT工业界1.力扣:反转链表2022-01-12(
剑指Offer
24.反转链表)英语1.墨墨背单词:复习50个单词
幸福大黑鸭
·
2024-01-02 21:42
每日一练(4):用两个栈实现队列
title:每日一练(4):用两个栈实现队列categories:[
剑指offer
]tags:[每日一练]date:2022/01/17每日一练(4):用两个栈实现队列用两个栈实现一个队列。
加班猿
·
2024-01-02 12:36
二叉树的下一个节点
题目来源:
剑指Offer
思路首先需要知道中序遍历下各位置节点的下一个节点在哪。
是我真的是我
·
2024-01-02 09:01
剑指offer
题解合集——Week2day7
文章目录
剑指offer
Week2周日:链表中倒数第k个节点AC代码思路:周日:链表中环的入口结点AC代码思路:
剑指offer
Week2周日:链表中倒数第k个节点题目链接:链表中倒数第k个节点输入一个链表
Azxcc0
·
2024-01-02 05:41
剑指offer
算法
leetcode
剑指offer
c++
剑指Offer
——二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路二叉搜索树的中序遍历,就是二叉搜索树的顺序排序。二叉树的中序遍历,实际上分为了3个部分,左子树,根,右子树。当遍历完左子树时,左子树已经是一个排好序的链表了,并且链表中的最后一个结点,是当前的最大值。只需要将根节点跟链表最后一个结点链接起来。然后再去遍历转换右子树。对于
Mereder
·
2024-01-02 05:32
面试高频算法专题:继续讨论数组问题(算法村第三关黄金挑战)
数组的问题不会做,不是说明你数组没学好,而是没学好用好Hash、集合、位运算等出现次数超过一半的数字(
剑指offer
)数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
陈星泽SSR
·
2024-01-01 20:24
算法村
算法
面试
哈希算法
双指针算法(超详细带8道例题及算法解析) —— 包含力扣题目有283移动零、1089复写零、202快乐数、11盛水最多的容器、611有效三角形的个数、179双数之和、15三数之和、18四数之和
等)——保姆级教程目录双指针算法解析1、力扣283.移动零2、力扣1089复写零3、力扣202快乐数4、力扣11盛水最多的容器5、力扣611有效三角形的个数6、力扣179查找总价为目标值的两个商品/原
剑指
dream_ready
·
2024-01-01 20:44
leetcode
算法
java
c++
python
c语言
【算法】【
剑指Offer
】旋转数组求最小值
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:既然数组本来是一个非递减数组,那么就说明是自小到大顺序的,但不排除有重复值。经过旋转后,第一个数字作为最小值,就被
沙漠里de小孩子
·
2024-01-01 19:41
[
剑指offer
][Java]二叉搜索树的后序遍历序列
题目输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。程序核心思想后序遍历是先遍历左子树,再遍历右子树,最后遍历根节点。二叉搜索树是对于每一个根节点来说,其左子树的值小于根节点的值,右子树的值大于根节点的值。所以在这个题目中,如果是后序遍历序列的话,最后一个值是根节点。可以先找到其左子树的部分(小于根节点),然
Maxinxx
·
2024-01-01 07:31
【数据结构与算法】:交换排序之快速排序(手绘图解+LeetCode原题)
四、算法分析时间复杂度五、快排思想在实际题目中的运用题目一、
剑指Offer
40.最小的k个数一、快速排序1.什么是快速排序?
.29.
·
2024-01-01 06:05
数据结构与算法
排序算法
算法
数据结构
java
常见算法面试题目
剑指offer
剑指offe2leetcode200题leetcode100题leetcode150题leetcode75题文章目录前言二叉树非递归遍历牛客JZ31栈的压入、弹出序列(8/4)JZ4二维数组中的查找
天下一般
·
2024-01-01 06:46
算法
面试
职场和发展
剑指 Offer(第2版)面试题 63:股票的最大利润
剑指Offer
(第2版)面试题63:股票的最大利润
剑指Offer
(第2版)面试题63:股票的最大利润解法1:暴力解法2:动态规划拓展题
剑指Offer
(第2版)面试题63:股票的最大利润题目来源:AcWing83
UestcXiye
·
2024-01-01 04:11
剑指
Offer
C++
剑指Offer
数据结构与算法
动态规划
剑指 Offer(第2版)面试题 64:求1+2+…+n
剑指Offer
(第2版)面试题64:求1+2+…+n
剑指Offer
(第2版)面试题64:求1+2+…+n解法1:构造函数解法2:虚函数解法3:数组
剑指Offer
(第2版)面试题64:求1+2+…+n题目来源
UestcXiye
·
2024-01-01 04:11
剑指
Offer
C++
剑指Offer
LeetCode-题目详解(一):数组
这里写目录标题1.两数之和【简单】
剑指Offer
03.数组中重复的数字【简单】45.跳跃游戏II【中等】48.旋转图像15.三数之和【中等】53.最大子数组和【简单】88.合并两个有序数组【简单】54-
u013250861
·
2024-01-01 02:19
LeetCode
数组
《
剑指Offer
》学习笔记--面试题11:数值的整数次方
题目:实现函数doublePower(doublebase,intexponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。我们都知道在C语言的库中有一个pow函数可以用来求乘方,本题要求实现类似于pow的功能。要求实现特定库函数(特别是处理数值和字符串的函数)的功能,是一类常见的面试题。自以为题目简单的解法由于不需要考虑大数问题,这道题看起来很简单,可能不少应
Citronnelle2
·
2024-01-01 02:27
《
剑指Offer
》学习笔记--面试题32:从1到n整数中1出现的次数
题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1的数字有1,10,11和12,1一共出现了5次。不考虑时间效率的解法,靠它想拿到Offer有点难如果在面试的时候碰到这个问题,应聘者大多能想到最直观的方法,也就是累加1到n中每个整数1出现的次数。我们可以每次通过对10求余数判断整数的个位数字是不是1.如果这个数字大于10,除以10之后再判
Citronnelle2
·
2024-01-01 02:27
剑指Offer
- 面试题15:二进制中1的个数
题目请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如,把9表示成二进制是1001,有俩位是1.因此,如果输入9,则函数输出2。类似题目在leetcoed上191.位1的个数也有。分析求余法我们让num每次%2求余,得到是1就让count++;然后让num/2。直到num为0为止。缺陷就是不能判断负数。C#includeintNumberOf(intn){intcount=0;whi
林夕07
·
2024-01-01 02:26
#
剑指Offer系列
算法
c语言
数学
面试
剑指offer
-面试题66:构建乘积数组
题目描述给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B[i]的值是数组A中除了下标i以外的元素的积,即B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:输入:[1,2,3,4,5]输出:[120,60,40,30,24]提示:所有元素乘积之和不会溢出32位整数a.length=0;i--){temp*=a[i+
xqxls1
·
2024-01-01 02:55
数据结构和算法
算法
数据结构
leetcode
java
面试
剑指offer
-面试题17:打印从1到最大的n位数
题目描述输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。示例1:输入:n=1输出:[1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n为正整数方法一(暴力法)1.解题思路首先确定最大的n位十进制数,然后从头到尾依次添加到结果数组2.代码实现classSolution{publicint[]printNumbers(in
xqxls1
·
2024-01-01 02:25
数据结构和算法
数据结构
leetcode
算法
java
剑指offer
-面试题16:数值的整数次方
题目描述实现pow(x,n),即计算x的n次幂函数(即xn)。不得使用库函数,同时不需要考虑大数问题。示例1:输入:x=2.00000,n=10输出:1024.00000示例2:输入:x=2.10000,n=3输出:9.26100示例3:输入:x=2.00000,n=-2输出:0.25000解释:2-2=1/22=1/4=0.25提示:-100.0
xqxls1
·
2024-01-01 02:24
数据结构和算法
数据结构
leetcode
java
面试
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
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
其他