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
《
剑指offer
》-算法篇-排序
题目最小的K个数数组中的逆序对代码实现最小的K个数题目描述:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路:按照各种排序算法,找到排序结果的前K个数。思路1:最简单的方案,对数组进行排序,取最小的k个思路2:借鉴快速排序的思想,找partition的基准点povit,比较povit和k值的大小思路3:大数据处理的思想,
小新学习屋
·
2025-07-29 04:29
数据结构与算法
算法
leetcode
职场和发展
数据结构与算法
《
剑指offer
》-数据结构篇-哈希表/数组/矩阵/字符串
题目第一个只出现一次的字符数组中的重复的数字字符串流中第一个不重复的字符数组中只出现一次的数字调整数组顺序使奇数位于偶数前面数组中出现次数超过一半的数字把数组排成最小的数顺时针打印矩阵把字符串转换为整数表示数值的字符串左旋转字符串(矩阵翻转)替换空格正则表达式匹配代码实现第一个只出现一次的字符题目描述:在一个字符串(0len(numbers)/2:returnreselse:return0把数组排
小新学习屋
·
2025-07-29 04:58
数据结构与算法
数据结构
leetcode
哈希表
剑指offer
--用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。C++代码//插入一个元素voidpush(intnode){stack1.push(node);//存储输入的元素}//弹出一个元素intpop(){//方法一:用stack2来接收stack1弹出的元素,形成一个和stack1相反的栈,再删除栈顶元素//重新把stack2的元素弹出给stack1#if0i
·
2025-07-27 02:47
剑指offer
<数据结构>------------队栈
用两个栈实现队列题目来源:牛客网1、问题描述描述用两个栈来实现一个队列,使用n个元素来完成n次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。数据范围:n\le1000n≤1000要求:存储n个元素的空间复杂度为O(n)O(n),插入与删除的时间复杂度都是O(1)O(1)2、思路解析先将数据压入栈1,
自首的小偷
·
2025-07-27 02:16
算法
数据结构
剑指offer
队列
栈
剑指offer
---用两个栈实现队列
用两个栈实现队列题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead操作返回-1)题目代码:classsolution{Stackstack1;Stackstack2;intsize;publicCQueue(){stack1=newStack()
TinhTinh
·
2025-07-27 02:45
算法与数据结构
队列
栈
数据结构
算法
stack
剑指offer
-数组\矩阵
数组总结:双指针,有序二分,分治;1.找出数组中重复的数字。在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。重点是:使用set集合,set中不能储存重复的值题目链接:力扣classSolution{publicintfindRepeatNumber(int[]nums){/
张小璇flying
·
2025-07-27 02:45
算法
剑指Offer
leetcode
排序算法
散列表
刷穿
剑指offer
-Day05-数组I
前文回顾之前我们使用三天的时间,学习了整数章节的知识学习。并在Day4的总结中,结合读者们关于算法学习和刷题过程中的疑问,进行了相关解答。当然朋友们也提了一些关于文章整体讲解上的建议,总体来说:每章的第一篇文章会将本章知识点全部讲解,但是当天的题目并不涉及这些内容,等后面的题目用到该知识点的时候,还要返回去看本章的第一篇文章,比较麻烦。算法题目讲解的时候,当前多为文字描述,希望能多添加一些配图帮助
清风Python
·
2025-07-27 01:12
算法之美
数据结构
算法
python
java
编程语言
《
剑指offer
》-数据结构篇-栈和队列
题目用两个栈实现队列包含main函数的栈栈的压入、弹出序列翻转单词顺序列(栈)滑动窗口的最大值代码实现用两个栈实现队列题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。#-*-coding:utf-8-*-classSolution:def__init__(self):self.stack1=[]self.stack2=[]defpush(self,nod
小新学习屋
·
2025-07-27 01:42
数据结构与算法
数据结构
python
算法
剑指offer
leetcode
每日一练(8):二进制中1的个数
title:每日一练(8):二进制中1的个数categories:[
剑指offer
]tags:[每日一练]date:2022/01/21每日一练(8):二进制中1的个数编写一个函数,输入是一个无符号整数
加班猿
·
2025-07-26 06:02
2021-09-29
IT1.LeetCode力扣:数组中数字出现的次数2021-09-29(
剑指Offer
56-I.数组中数字出现的次数)2.《
剑指offer
》:p275~p278英语1.墨墨背单词:复习50个单词
幸福大黑鸭
·
2025-07-25 18:02
2021-12-24
IT工业界1.力扣:矩阵中的路径2021-12-24(
剑指Offer
12.矩阵中的路径)英语1.墨墨背单词:复习50个单词
幸福大黑鸭
·
2025-07-24 10:09
java版本
剑指offer
:反转链表
java版本
剑指offer
:反转链表描述输入一个链表,反转链表后,输出新链表的表头。示例1输入:{1,2,3}返回值:{3,2,1}此题想考察的是:如何调整链表指针,来达到反转链表的目的。
快乐骑行^_^
·
2025-07-21 01:44
面试题分享专栏
日常分享专栏
java版本剑指offer
反转链表
LeetCode - 剑指 Offer 66. 构建乘积数组
剑指Offer
66.构建乘积数组题目描述解题思路遍历乘法源代码运行结果总结反思题目描述解题思路遍历乘法先将其分为上下两个三角:下三角从上往下:从第二行开始,并且给B[0]赋初值1。
翊棽312
·
2025-07-20 22:55
LeetCode
leetcode
算法
职场和发展
剑指offer
66_不用加减乘除做加法
不用加减乘除做加法写一个函数,求两个整数之和,要求在函数体内不得使用+、-、×、÷四则运算符号。数据范围输入和输出都在int范围内。样例输入:num1=1,num2=2输出:3算法思路这是一个不使用加减运算符实现整数加法的算法,利用了位运算来模拟加法过程。核心思想是将加法分解为:无进位相加(通过异或运算^实现)计算进位(通过与运算&和左移<<实现)循环直到进位为0时间复杂度:O(1)因为整数位数固
·
2025-07-20 22:54
剑指offer
67_构建乘积数组
构建乘积数组给定一个数组A[0,1,…,n-1],请构建一个数组B[0,1,…,n-1],其中B中的元素B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。数据范围输入数组长度[0,20]。样例输入:[1,2,3,4,5]输出:[120,60,40,30,24]思考题:能不能只使用常数空间?(除了输出的数组之外)算法思路核心思想:将B[i]拆解为左乘积(l
·
2025-07-20 22:51
剑指offer
-12、数值的整数次方
题⽬描述给定⼀个double类型的浮点数base和int类型的整数exponent。求base的exponent次⽅。保证base和exponent不同时为0。示例1:输⼊:2.00000,3返回值:8.00000示例2:输⼊:2.10000,3返回值:9.26100思路及解答暴力求解如果使⽤暴⼒解答,那么就是不断相乘,对于负数⽽⾔,则是相除,并且符号取反。publicclassSolution{
·
2025-07-12 15:24
java
剑指offer
55_数组中只出现一次的两个数字
数组中只出现一次的两个数字一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。你可以假设这两个数字一定存在。数据范围数组长度[1,1000][1,1000][1,1000]。样例输入:[1,2,3,3,4,4]输出:[1,2]算法思路这个题挺好,不是很难但也颇受启发。利用异或运算的性质:异或性质:a^a=0(相同数字异或结果为0)a^0=a(任何数字与0异或
君鼎
·
2025-07-09 21:27
算法
算法
剑指offer
-9-变态跳台阶
题⽬描述⼀只⻘蛙⼀次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该⻘蛙跳上⼀个n级的台阶总共有多少种跳法。思路及解答数学归纳法⾸先⻘蛙⼀次可以跳1,2,3到n级。假设函数是f(n),则:⻘蛙跳到第⼀级是f(1)=1,只有⼀种跳法。⻘蛙跳到第⼆级,可以是直接跳到第⼆级,也可以是从第⼀级直接跳。所以f(2)=f(1)+1⻘蛙跳到第三级,可以从第0级跳,也可以从第1级跳,也可以从第2级跳。所
·
2025-07-08 09:35
后端javaleetcode
剑指 Offer 03. 数组中重复的数字
剑指Offer
03.数组中重复的数字题目:在一个长度为n的数组nums里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。
·
2025-07-07 00:03
剑指offer
-8、跳台阶
题⽬⼀只⻘蛙⼀次可以跳上1级台阶,也可以跳上2级。求该⻘蛙跳上⼀个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1输⼊:2输出:2解释:⻘蛙要跳上两级台阶有两种跳法,分别是:先跳⼀级,再跳⼀级或者直接跳两级。因此答案为2示例2输⼊:7输出:21示例3:输⼊:0输出:0思路及解答动态规划这题和第7题斐波那契数列基本类似,只是换了一个题目表达方式。青蛙跳到第n级台阶的跳法数dp[i]取决
·
2025-07-02 11:09
后端java
剑指offer
第二版学习笔记(一)前言
久闻
剑指offer
大名,如今我也到了要找工作的时候了,趁现在还有时间,多学一点是一点,在此开一个分集记录一下在学习
剑指offer
过程中的一些经验和想法。注:使用的书籍是
剑指offer
第二版。
虚空来袭
·
2025-07-01 14:55
剑指offer第二版
剑指Offer
第2版
剑指offer
第二版(1——20)
剑指Offer
II001.整数除法intdivide(inta,intb){boolflag=false;if(b==INT_MAX){if(a==INT_MIN||a==-INT_MAX)return
学心理学的猫
·
2025-07-01 13:53
剑指向offer
算法
数据结构
c++
【力扣—剑指 Offer(第 2 版)简单题目解析汇总】
【力扣—
剑指Offer
(第2版)简单题目解析汇总】说明1、基本字符串数组数组-排序矩阵/模拟枚举2、算法动态规划深度优先搜索广度优先搜索递归分治记忆化搜索快速选择二分查找3、基础数据结构树(二叉树)二叉搜索树栈队列堆
Wupke
·
2025-07-01 13:53
剑指offer
数据结构与算法学习
LeetCode
leetcode
剑指offer
数据结构与算法
剑指offer
-7、斐波那契数列
题⽬描述⼤家都知道斐波那契数列,现在要求输⼊⼀个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。(n<=39)输⼊描述:⼀个正整数n返回值描述:输出⼀个正整数。思路及解答直接暴⼒思路很直接,利⽤函数进⾏递归即可。publicclassSolution{publicintFibonacci(intn){if(n==0){return0;}elseif(n==1){retur
·
2025-07-01 11:48
后端java
剑指-offer-扑克牌中的顺子判断
剑指Offer
扑克牌中的顺子判断问题描述在扑克游戏中,判断一副牌是否构成一个“顺子”是一个经典的问题。顺子指的是连续的五个数字(可以包含大小王),其中大小王可以视作任意数字来填补空缺。
hi error.cn
·
2025-06-30 21:41
经验分享
剑指offer
46_字符串中第一个只出现一次的字符
字符串中第一个只出现一次的字符字符串中找出第一个只出现一次的字符。如输入"abaccdeff",则输出b。如果字符串中不存在只出现一次的字符,返回#字符。数据范围输入字符串长度[0,1000][0,1000][0,1000]。样例输入:"abaccdeff"输出:'b'算法思路(哈希表计数)核心思想:使用哈希表统计每个字符的出现次数。二次遍历字符串,找到第一个计数为1的字符。关键步骤:第一次遍历:
·
2025-06-27 21:54
剑指offer
-6、旋转数组的最小数字
题⽬描述把⼀个数组最开始的若⼲个元素搬到数组的末尾,我们称之为数组的旋转。输⼊⼀个⾮递减排序的数组的⼀个旋转,输出旋转数组的最⼩元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的⼀个旋转,该数组的最⼩值为1。NOTE:给出的所有元素都⼤于0,若数组⼤⼩为0,请返回0。思路及解答在这⾥最重要的特征是⾮递减排序,也就是本来是递增的,如果旋转后会出现什么情况呢?肯定会出现先递增,再递减的情况
·
2025-06-27 05:53
后端java
剑指offer
-5、两个栈实现⼀个队列
题⽬描述⽤两个栈来实现⼀个队列,完成队列的Push和Pop操作。队列中的元素为int类型。思路及解答栈的特性是先进后出队列的特性是先进先出有两个栈stack1,stack2;如果有新的数据进⼊,那么我们可以直接push到stack1;如果需要取出数据,那么我们优先取出stack2的数据,如果stack2⾥⾯数据是空的,那么我们需要把所有的stack1的数据倒⼊stack2。再从stack2取数据。
·
2025-06-25 12:41
后端java
LeetCode
剑指offer
算法备战春招-合并两个排序的链表
剑指Offer
25.合并两个排序的链表输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
wangshuo(24考研上岸版)
·
2025-06-23 11:42
leetcode
算法
职场和发展
九日集训第一天(函数)
文章目录一、前言二、题目1)371.两整数之和1.a)代码:2)面试题17.01.不用加号的加法2.a)代码:3)
剑指Offer
65.不用加减乘除做加法3.a)代码:4)面试题08.05.递归乘法4.a
枏念
·
2025-06-19 01:41
九日集训
java
算法
剑指offer
-3、从尾到头打印链表
题目描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0printListFromTailToHead(ListNodelistNode){Stackstack=newStackresults=newArrayListprintListFromTailToHead(ListNodelistNode){Arra
·
2025-06-17 12:42
后端javaleetcode
剑指offer
26_顺时针打印矩阵
顺时针打印矩阵输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。数据范围矩阵中元素数量[0,400][0,400][0,400]。样例输入:[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]算法思路初始化:检查输入矩阵是否为空,若为空则直接返回空结果。获取矩阵的行数n和列数m。创建一个与矩阵大小相同的二维布
君鼎
·
2025-06-16 11:14
算法
矩阵
算法
数据结构
求1+2+3+...+n的和
当我看了这道
剑指offer
的笔试题后,觉得这简直是在摩擦我的智商,看完别人的方案之后,真的是这样。
川夜施密特
·
2025-06-16 02:17
笔试题
算法
剑指offer
-2、替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为"WeAreHappy",则经过替换之后的字符串为"We%20Are%20Happy"。思路及解答调⽤API函数java⾥⾯有可以直接使⽤的函数replace(),直接写成下⾯这样即可通过。publicStringreplaceSpace(StringBufferstr){Stringresult=str.toStrin
·
2025-06-13 12:20
java
剑指offer
21——反转链表
反转链表定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。思考题:请同时实现迭代版本和递归版本。数据范围链表长度[0,30][0,30][0,30]。样例输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL方案一、迭代翻转即将所有节点的next指针指向前驱节点。由于是单链表,我们在迭代时不能直接找到前驱节点,所以需要一个额外的指针保存前驱节
君鼎
·
2025-06-11 20:09
算法
链表
数据结构
剑指offer
-1、⼆维数组中的查找
题目描述在⼀个⼆维数组中(每个⼀维数组的⻓度相同),每⼀⾏都按照从左到右递增的顺序排序,每⼀列都按照从上到下递增的顺序排序。请完成⼀个函数,输⼊这样的⼀个⼆维数组和⼀个整数,判断数组中是否含有该整数。例⼦,输⼊⼀个数组:num[3][4]=[1,4,6,28,2,7,32,30,10,11,67,79]需要查找⼀个数字32,则返回true。思路及解答暴⼒破解直接暴⼒遍历,最简单,但显然,在最坏的情
·
2025-06-06 10:49
后端javaleetcode
剑指offer
16_在O(1)时间删除链表结点
在O(1)时间删除链表结点给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。假设链表一定存在,并且该节点一定不是尾节点。数据范围链表长度[1,500][1,500][1,500]。样例输入:链表1->4->6->8删掉节点:第2个节点即6(头节点为第0个节点)输出:新链表1->4->8题解(链表)O(1)O(1)O(1)由于是单链表,我们不能找到前驱节点,所以我们不能按常规方法将该
君鼎
·
2025-06-05 17:37
算法
链表
数据结构
LeetCode#第135题:分发糖果(困难题&&滤波器解法)
接下来我们把难度功率拉满,
剑指offer
!n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求,给这些孩子分发糖果:每个孩子至少分配到1个糖果。
玉~你还好吗
·
2025-05-27 21:25
leetcode
算法
数据结构
求二叉树最大深度的两种方法
剑指offer
55思路1、树的后序遍历/深度优先搜索往往利用递归或栈实现,本文使用递归实现。
Cedar_Guo
·
2025-05-27 18:35
数据结构与算法
深度优先
宽度优先
list
剑指offer
7_二叉树的下一个节点
二叉树的下一个节点给定一棵二叉树的其中一个节点,请找出中序遍历序列的下一个节点。注意:如果给定的节点是中序遍历序列的最后一个,则返回空节点;二叉树一定不为空,且给定的节点一定不是空节点;不同节点权值不同;数据范围树中节点数量[0,100]。样例假定二叉树是:[2,1,3,null,null,null,null],给出的是值等于2的节点。则应返回值等于3的节点。解释:该二叉树的结构如下,2的后继节点
君鼎
·
2025-05-26 06:06
算法
算法
数据结构
剑指Offer
32.I 从上到下打印二叉树 C++
1、题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树:[3,9,20,null,null,15,7],返回:[3,9,20,15,7]2、VS2019上运行使用队列+BFS(广度优先搜索);按层遍历#include#include#includeusingnamespacestd;//Definitionforabinarytreenode.struct
猴子不是唯一的动物
·
2025-05-16 16:53
剑指Offer刷题
c++
深度优先
算法
力扣
刷题进阶 --
剑指Offer
、力扣算法题
力扣的刷题计划展览罢了,懒得记录题解了刷题地址:「
剑指Offer
」-学习计划-力扣(LeetCode)全球极客挚爱的技术成长平台刷题过程中发现动态规划是弱项,找了动态规划的学习计划:「动态规划」-学习计划
啦啦啦___123
·
2025-05-16 16:18
刷题
动态规划
Leetcode-数字操作
文章目录q7整数反转q8字符串转换整数q9回文数q43字符串相乘q172阶乘后的零q258各位相加q461汉明距离
剑指Offer
15.二进制中1的个数
剑指Offer
16.数值的整数次方
剑指Offer
17
jenrain
·
2025-05-06 05:48
LeetCode
leetcode
LeetCode 75. 颜色分类(Medium)/ 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(Easy)/ 大小写字母左右移动 / 元素移动问题!!!
283.移动零(原地移动到数组末尾)(Easy)
剑指Offer
21.调整数组顺序使奇数位于偶数前面(Easy)【原地】大小写字母左右移动26.
Aiclin
·
2025-05-01 17:03
LeetCode
leetcode
算法
职场和发展
栈相关算法题解题思路与代码实现分享
目录前言一、最小栈(LeetCode155)题目描述解题思路代码实现(C++)代码解释二、栈的压入、弹出序列(
剑指Offer
JZ31)题目描述解题思路代码实现(C++)代码解释总结前言在算法学习和面试准备过程中
共享家9527
·
2025-04-27 21:12
C++
c++
leetcode
python栈应用十进制转二进制用最少的时间复杂度_GitHub - DestroyLee/AlgorithmsByPython: 算法/数据结构/Python/
剑指offer
/机器学习/leetco.
update20160704准备加入《
剑指offer
》的习题python实现,以及机器学习过程中的一些算法update20160717加入leetcode部分##update20160730update20160814
k程
·
2025-04-11 01:30
LeetCode每日温度
剑指Offer
II038.每日温度请根据每日气温列表temperatures,重新生成一个列表,要求其对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。
liyatjj
·
2025-04-04 00:34
LeetCode
Java
leetcode
算法
python_ACM模式《
剑指offer
刷题》二叉树3
题目:面试tips:若面试官无特殊要求直接优先采用思路一递归法(易想);若有特殊要求,例如不想要重复遍历中序序列来寻找根节点,则采取思路二,即将中序遍历存入到哈希表中,实现在中序遍历中取根节点的index是O(1)时间复杂度来取;若要求不采用递归的方式,则采取思路三巧妙的迭代法。思路:思路一:直接递归思想首先明白前序遍历是中左右,中序遍历是左中右。因此根据前序遍历序列,我们可以将序列中第一个值作为
一个学数学的算法G
·
2025-04-02 23:20
剑指offer练习
算法
剑指Offer
(数据结构与算法面试题精讲)C++版——day1
剑指Offer
(数据结构与算法面试题精讲)C++版题目一:整数除法题目二:二进制加法题目三:前n个数字二进制形式中1的个数题目一:整数除法 解法1:暴力法,直接连减:#includeusingnamespacestd
Jerry说前后端
·
2025-04-02 15:01
每天三道算法题
c++
开发语言
LeetCode 字符串的排列全排列问题(
剑指offer
38)
funcpermutation(sstring)[]string{//思路:使用寻找下一个增长序列(同官方解题)//步骤:1.升序排序2.依次使用寻找下一个序列查找下一个符合条件的序列3.返回结果bs:=[]rune(s)l:=len(bs)ifl==0||l>8{//panic("参数长度异常")return[]string{}}sort.Slice(bs,func(a,bint)bool{re
·
2025-03-29 19:06
go算法
上一页
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
其他