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
剑指offer32
剑指
offer 笔记 40 | 数组中只出现一次的数字
思路分析题目一直强调「找出两个只出现一次的数字,其他的都是出现两次」,那么有很多种解法,但《
剑指
offer》推荐用「异或」的方式来处理。异或(^)他是到底是什么运算呢?
ProudLin
·
2022-02-11 12:52
每日一练(16):对称的二叉树
title:每日一练(16):对称的二叉树categories:[
剑指
offer]tags:[每日一练]date:2022/02/11每日一练(16):对称二叉树请实现一个函数,用来判断一棵二叉树是不是对称的
·
2022-02-11 11:46
剑指
offer 3
本期题目概览本期的五道题涉及到的知识点有:递归,整数的二进制表示,逻辑运算符,python中List常用的内置方法。chapter3试题11:变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。(递归想明白不容易,即使递归两次认真去想那也很烧脑。之前看过一本书,作者对于递归给的建议:别想太多,相信信念。还别说,这样一想就好用多了,
Solarzhou
·
2022-02-11 11:45
<
剑指
Offer>面试题10(4): 矩阵覆盖
题目描述我们可以用2x1的小矩形横着或者竖着去覆盖更大的矩形请问用n个2x1的小矩形无重叠地覆盖一个2xn的大矩形,总共有多少种方法?题目解读题解代码classSolution{public:intrectCover(intnumber){inta=1;intb=2;intresult;if(number==0){result=0;}elseif(number==1){result=1;}else
cb_guo
·
2022-02-11 05:41
剑指
offer32.二叉树的层次遍历
思路:还是用队列保存将要打印的节点。为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前层中还没有打印的节点数,另一个变量表示下一层的节点数classSolution(object):deflevelOrder(self,root):""":typeroot:TreeNode:rtype:List[List[int]]"""ifroot==None:returnrootnod
欧文坐公交
·
2022-02-11 05:39
剑指
offer34.二叉树中和为某一值得路径
打印出二叉树中节点值的和为输入整数的所有路径思路:从根节点出发,只有前序遍历时首先访问根节点的。用栈把访问到的节点保存起来,并累加它的值。当访问到叶节点的时候,如果满足条件,就把它打印出来。当前节点访问结束后,递归函数自动回到它的父节点。所以保存路径的数据结构是一个栈。
欧文坐公交
·
2022-02-11 04:06
【
剑指
offer】树中两个结点的最低公共祖先。
1、题目描述给出一个二叉树,输入两个树节点,求它们的最低公共祖先。一个树节点的祖先节点包括它本身。注意:输入的二叉树不为空;输入的两个节点一定不为空,且是二叉树中的节点;样例:二叉树[8,12,2,null,null,6,4,null,null,null,null]如下图所示:8/ \122 / \ 6 4如果输入的树节点为2和12,则输出的最低公共祖先为树节点8。如果输入的树节点为2和6,则输出
邓泽军_3679
·
2022-02-11 01:22
剑指
Offer 34. 二叉树中和为某一值的路径(dfs,回溯)
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。示例:给定如下二叉树,以及目标和sum=22,5/48//11134/\/7251返回:[[5,4,11,2],[5,8,4,5]]/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNo
大蜡笔
·
2022-02-10 23:02
剑指
offer10.斐波那契数列
求斐波那契数列的第n项青蛙跳台阶问题,一只青蛙一次可以跳上一级台阶,也可以跳上二级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法用8个2*1的小矩形无重复地覆盖一个2*8的大矩形,总共有多少种方法
欧文坐公交
·
2022-02-10 06:33
剑指
offer 算法专题
斐波那契数列
剑指
offer10-i斐波那契数列classSolution{publicintfib(intn){inta=0;intb=1;intsum;for(inti=0;i=0){if(matrix
驰同学
·
2022-02-10 04:46
剑指
offer45.把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个思路:找到一个字符串数组的排序规则,利用快排的思想进行排序classSolution(object):defprintMinNumber(self,nums):""":typenums:List[int]:rtype:str"""defstr_sort(list):iflen(list)=(list[0]+i
欧文坐公交
·
2022-02-10 03:48
2020计专后台服务器开发方向应届生月薪深度分析盘点
1.算法题,各大公司笔试面试基本都考这个,别的不说,《
剑指
offer》所有题目背下来,leetcode刷个四五百题起码的吧。搞过ACM也可以,反正刷个四五百题是必须的。
面试题小能手
·
2022-02-10 02:32
剑指
offer38.字符串的排列
输入一个字符串,打印出该字符串的所有排列思路:分两步,第一步求所有可能出现在第一个位置的字符,即把第一个字符和后面的所有字符交换。第二步固定第一个字符,求后面所有字符的排列。对后面所有字符的排列同样也是这两步。递归defmy_permutation(s):str_set=[]ret=[]#最后的结果defpermutation(string):foriinstring:str_tem=string
欧文坐公交
·
2022-02-10 01:20
剑指
offer - 复杂链表的复制
题目请实现函数ComplexListNode*Clone(ComplexListNode*pHead),复制一个复杂链表。在复杂链表中,每个节点除了有一个m_pNext指针指向下一个节点,还有一个m_pSibling指针指向链表的任意节点或者nullptr。结点的C++定义如下structComplexListNode{intm_nValue;ComplexListNode*m_pNext;Com
Longshihua
·
2022-02-09 18:16
【乐通达】微信永不缺席!连发三大重磅更新,视频号终于成了视频号
这三个新释放的功能分别
剑指
视频号的内容、流量和商业化,初步显露了微
LTD营销SaaS
·
2022-02-09 17:48
运营分享
产品介绍
君士坦丁堡---战争1453之一
如今,胃口吞鲸的奥斯曼帝国正
剑指
君士坦丁堡,苏丹的数万大军及其横梗在马尔马拉海的庞大舰队,正在对他早已垂涎三尺的“红苹果”形成合围之势。在奥斯曼帝国的版图中,君士坦丁堡如鲠在喉
Rockets_63
·
2022-02-09 09:40
剑指
offerDay30----连续子数组的最大和
题目:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和
墨殇染泪
·
2022-02-09 06:18
剑指
offer(六)旋转数组的最小数据
写在前面:为了增长一下自己的数据结构能力,也为了面试准备,准备将
剑指
Offer做一下,并与各位分享,希望各位可以对代码以及思路提提建议,欢迎志同道合者,谢谢。
z七夜
·
2022-02-09 04:09
[刷题]
剑指
offer之平衡二叉树
题目题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。注:这个题思路很好,可以经常看。解法一思路一般来说,平衡二叉树既是平衡的树,又是二分搜索树。但此题只要求判断是不是平衡的。判断一棵树是否是平衡的,就是判断所有的节点是不是平衡的。判断一个节点是不是平衡的,就是判断左右子节点的高度差是否left),getHeight(node->right));}判断当前节点是否平衡,就是计算左右子树的高度差。
StormZhu
·
2022-02-08 20:05
70. Climbing Stairs
《
剑指
offer》原题,典型的动态规划,最后一步可能是一步或者两步我的AC解法:classSolution{public:intclimbStairs(intn){vectorf;f.push_back
analanxingde
·
2022-02-08 13:58
《
剑指
offer》- 重建二叉树
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:通过分析前序遍历和中序遍历的规律,前序遍历的第一个节点就是二叉树的根节点,中序遍历中,位于根节点前面的所有节点都位于左子树上,位于根节点后面的所有节点都
辽A丶孙悟空
·
2022-02-08 13:21
币圈鸿钧:11.21比特币 以太坊再次破位新高
剑指
20000、600
【前言】套单在交易过程中是一种很常见的现象,有的朋友不习惯带止损,有的是在大行情下来了来不及去设止损,而导致单子被套!在这个时候,一定不能乱了阵脚,控制好心态冷静处理!【比特币行情分析】日线级别来看,币价六连阳,直接破位18900,有直逼20000的趋势,早间直接拉升,各均线趋势还是向上,涨幅太猛,日内应该会有回调的需要。四小时级别来看,币价运行在布林带上轨位置,呈现一个开口状态,各均线走势强势向
币圈鸿钧
·
2022-02-08 11:58
【leetcode C语言实现】
剑指
Offer 21.调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums=[1,2,3,4]输出:[1,3,2,4]注:[3,1,2,4]也是正确的答案之一。提示:1#includeint*exchange(int*nums,intnumsSize,int*returnSize);voidPrintTest(intnums[]
sunshine_hanxx
·
2022-02-07 17:23
[
剑指
offer] 构建乘积数组
本文首发于我的个人博客:尾尾部落题目描述给定一个数组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]。不能使用除法。解题思路imageB[i]的值可以看作图中矩阵第i行所有元素的乘积。我们可以先算下三角中的连乘,即我们先算出B[i]中的一部分,然后倒过来按上三角中的分布规律
繁著
·
2022-02-07 10:37
英豪颂☆马克思诞辰祭☆松
新元纪,更沙场秣马,
剑指
苍穹。乙燔祭...共产主义光芒耀寰宇...
乙燔
·
2022-02-07 09:09
剑指
Offer-二进制中1的个数
题目描述二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路转自https://www.cnblogs.com/edisonchou/p/4752086.html为了避免死循环,我们可以不右移输入的数字i:(1)首先把i和1做与运算,判断i的最低位是不是为1。(2)接着把1左移一位得到2,再和i做与运算,就能判断i的次低位是不是1。(3)这样反复左移,每次都能判
一只可爱的柠檬树
·
2022-02-07 08:37
剑指
Offer- 连续子数组的最大和
题目描述[连续子数组的最大和]HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返
一只可爱的柠檬树
·
2022-02-07 07:03
打印从1到最大的n位数
《
剑指
offer》面试题17:打印从1到最大的n位数题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。
打工这件小事
·
2022-02-07 01:07
2019-08-22
剑指
二叉树的深度
2min,根的深度=左右子树最大深度+1classSolution:defTreeDepth(self,pRoot):ifnotpRoot:return0returnmax(self.TreeDepth(pRoot.left),self.TreeDepth(pRoot.right))+1拓展:判断是否是平衡二叉树1.左右子树深度相差小于等于12.后序遍历的同时,既判断子树是否平衡,也返回左右子树的
mztkenan
·
2022-02-07 00:55
剑指
offer26.树的子结构
测试:两棵树头节点有一个或两个都是空指针,树A或树B所有节点都只有左子节点或右子节点,思路:在树A中找到和树B的根节点的值一样的节点R(树的遍历——递归或循环),然后判断A中以R为根节点的子树是不是包含和树B一样的结构。会多次判断一个指针是不是空指针,避免试图访问空指针而造成程序崩溃classSolution(object):defhasSubtree(self,pRoot1,pRoot2):""
欧文坐公交
·
2022-02-06 23:38
滚蛋吧,雾霾君
雾霾君啊,您马不停蹄,一路高歌猛进,独霸华北平原,
剑指
锦绣江南,兵临川蜀大地。昔有秦皇汉武指点江山,唐宗宋祖独领风骚,今有雾霾君苍茫大地主沉浮!
乌因
·
2022-02-06 21:32
剑指
offer58-1.翻转字符串单词顺序
思路:第一步翻转句子中所有字符,第二步翻转每个单词的字符顺序classSolution:defreverseWords(self,s):return"".join(s.split()[::-1])
欧文坐公交
·
2022-02-06 14:12
剑指
offer55.二叉树的深度
思路:如果根节点只有左子树而没有右子树,那么树的深度是左子树的深度加1。如果根节点只有右子树,那么树的深度是右子树深度+1。否则是左右子树较大值+1。递归classSolution:deftreeDepth(self,root):""":typeroot:TreeNode:rtype:int"""ifroot==None:#边界条件return0ifroot.left==Noneandroot.r
欧文坐公交
·
2022-02-06 07:48
用两个栈实现队列,用两个队列实现堆栈
参考:
剑指
Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈用两个栈实现队列stack1作为入列用,stack2用于出列及暂存/***用两个栈实现一个队列,完成两个函数appendTail
qpan
·
2022-02-06 05:57
剑指
offer15.二进制中1的个数
思路一:每次右移一位,与整数1做位与运算(把整数右移一位和把整数除以2在数学上等价,但除法效率低),但是负数一直右移会陷入死循环?思路二:先和1做与运算,然后把1左移,再做与运算,再左移。。。思路三:把一个整数减去1之后和原来的整数做位与运算,得到的结果相当于把整数的二进制表示中最右边的1变成0.
欧文坐公交
·
2022-02-05 20:19
剑指
offer42.连续子数组的最大和
思路一:举例分析数组的规律,每次加上负数之前有一个和,如果加上这个负数之后数组和变为负数,则抛弃前面的数classSolution(object):defmaxSubArray(self,nums):""":typenums:List[int]:rtype:int"""max=nums[0]sum=nums[0]foriinrange(1,len(nums)):ifsum+nums[i]>nums
欧文坐公交
·
2022-02-05 19:06
关于跳槽你想好了吗?这里Android资深架构师有一些建议以及面试相关准备
####刷题我的方式是LeetCode+《
剑指
offer》,虽然老,但是效果非常不错。
m0_65320833
·
2022-02-05 19:52
程序员
架构
移动开发
android
三面网易,四面阿里,五年开发经验程序员
剑指
大厂,java语言程序设计与数据结构进阶篇答案
说sql调优经验Redis:redis的数据结构redis淘汰策略redis单节点和多节点redis的数据储存网络:HTTP1.1版本增加了哪些内容?有哪几种请求方式?描述下HTTP三次握手和四次挥手过程?为什么需要四次挥手?为什么TIME_WAIT状态需要经过两个最大报文段生存时间才能到close状态?浏览器发起一个请求到收到响应中间经历了哪些过程?Nginx:Nginx模块,说说你最熟悉的pr
m0_65320833
·
2022-02-05 19:21
程序员
面试
java
后端
剑指
offer--用两个栈实现队列
用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。java思路:stack先进后出,queue先进先出,入栈给stack1,出栈时,若stack2不为空,则出栈,若为空,把stack1的内容全都放入stack2,然后再出栈。importjava.util.Stack;publicclassSolution{Stackstack1=newStack();Stackst
亮涛
·
2022-02-05 13:27
剑指
offer8.二叉树的下一个节点
给定一个二叉树的其中一个节点,找出中序遍历的下一个节点思路:1.如果一个节点有右子树,那么它的下一个节点就是它的右子树中的最左子结点如果一个节点没有右子树。如果节点是它的父节点的左子节点,那么它的下一个节点就是它的父节点。如果节点是它的父节点的右子节点,那么就沿着指向父节点的指针一直向上遍历,直到找到一个是它父节点的左子节点的节点。这个节点的父节点就是我们要找的下一个节点。classSolutio
欧文坐公交
·
2022-02-05 11:51
剑指
offer11.旋转数组中的最小数字
思路:旋转数组是两个排序的数组,可以比较头、尾、中间三个元素,根据中间元素和头尾两元素的比较结果,可以将查找范围缩小到原来的一半。(二分查找法)注意!!没有旋转的情况;头尾两个指针相等的情况({1,0,1,1,1})——此时不得不采用顺序查找的方法。deffind_min(nums):ifnotnums:returnFalselength=len(nums)left,right=0,length-
欧文坐公交
·
2022-02-05 09:37
剑指
offer--替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。简易版:publicclassSolution{publicStringreplaceSpace(StringBufferstr){for(intk=0;k=0&&indexOfOriginal!=indexOfNew){if(tempArray
亮涛
·
2022-02-05 09:29
剑指
offer46.把数字翻译成字符串
给定一个数字,把0翻译成a,1翻译成b…25翻译成z。一个数字可能有多个翻译。计算一个数字有多少种翻译的方法思路:最开始的一个或者两个数字被翻译成一个字符之后,我们接着翻译剩下的数字,可以写成一个递归函数。f(i)=f(i+1)+g(i,i+1)f(i+2)。当第i位和第i+1位两位数字拼接起来的数字在10~25范围内,g(i,i+1)等于1,否则为0因为递归自上而下解决问题会出现重复,我们可以从
欧文坐公交
·
2022-02-05 08:36
[
剑指
Offer]68-I.二叉搜索树的最近公共祖先
题目给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点x,满足x是p、q的祖先且x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树:root=[6,2,8,0,4,7,9,null,null,3,5]示例1:输入:root=[6,2,8,0,4,7,9,null,null,3
炭烧熊猫
·
2022-02-05 07:34
剑指
offer63.股票的最大收益
也就是求数组中的最大差值思路:在卖出价固定时,买入价越低获得的利润越大卖出价固定时,买入价越低获得的利润越大。扫描到数组中第i个数字时,只要我们能够记住之前的i-1个数字中的最小值,就能算出在当前价位卖出时可能得到的最大利润classSolution(object):defmaxDiff(self,nums):""":typenums:List[int]:rtype:int"""iflen(num
欧文坐公交
·
2022-02-05 05:33
剑指
offer18.删除链表的节点
给定单链表的头指针和一个节点指针,在O(1)时间内删除该节点思路一:不一定需要找到该节点的前一个节点,只要把后一个节点复制到该节点上,再让该节点指向后后个节点,但是对于尾节点,没有下一个节点,仍需遍历找到它的前一个节点。但是还有一个问题是我们不能确定该节点是否在链表中,这个问题无法在O(1)时间内解决。classSolution(object):defdeleteNode(self,node):"
欧文坐公交
·
2022-02-05 05:08
剑指
Offer——旋转数组中的最小数 Java
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路12345,旋转后34512,最小值是1,那么用二分查找很容易找到最小值为1:。二分查找部分不再赘述考虑下特殊情况
Mereder
·
2022-02-05 04:29
剑指
Offer- 整数中1出现的次数(从1到n整数中1出现的次数)
题目描述[整数中1出现的次数(从1到n整数中1出现的次数)]求出1-13的整数中1出现的次数,并算出100-1300的整数中1出现的次数?为此他特别数了一下1-13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1到n中1出现的次数)。解题思路转自https://se
一只可爱的柠檬树
·
2022-02-05 03:19
剑指
offer17.打印从1到最大的n位数
注意:求最大的n位数时用整型和长整型都会溢出思路一:为了表达大的数,用字符串来解决。需要知道什么时候到达最大的数,如果直接对比的话需要对比n个字符,时间复杂度为O(n),通过判断+1进位后快速判断是否到了最大的n位数。因为是字符串,位数不够的时候在前面补0,但是打印出来的时候不要显示前面的0。思路二:其实就是一个n位所有十进制数的全排列,可以用递归实现全排列。
欧文坐公交
·
2022-02-05 03:35
剑指
offer:重建二叉树
这道题刚拿到的时候并不知道怎么做,想了会儿,用递归的方法做出来了。输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。#-*-coding:utf-8-*-classTreeNode:def__init__(self
聪民
·
2022-02-04 20:31
上一页
94
95
96
97
98
99
100
101
下一页
按字母分类:
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
其他