![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指Offer
yurenguowang
这个作者很懒,什么都没留下…
展开
-
[剑指Offer] 数组中重复的数字(Python)
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路 思路一:用Bool数组存放flag 思路二:从下标0开始,对每个元素,若numbers[i]不等于i...原创 2018-06-04 20:21:25 · 3008 阅读 · 0 评论 -
[剑指Offer] 求1+2+3+...+n(Python)
题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 思路 思路一:Python语言特性 思路二:递归 + 逻辑与的短路特性代替if语句 代码 #思路一 # -*- coding:utf-8 -*- class Solution: def Sum_Solution(sel...原创 2018-06-04 23:17:37 · 1885 阅读 · 0 评论 -
[剑指Offer] 把数组排成最小的数(Python)
题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路 先将整数数组转为字符串数组,然后用比较器实现字符串比较大小。如果有字符串A和B, A + B < B + A,则A在前;反之B在前。最后将字符串数组连接去除返回值左侧的0。 代码 #...原创 2018-06-04 16:22:20 · 2534 阅读 · 0 评论 -
[剑指Offer 37] 两个链表的第一个公共节点(Python)
题目描述输入两个链表,找出它们的第一个公共结点。思路两个有公共节点的链表是Y字型的结构,自公共节点后是重合的。可以借助两个栈先存储链表的节点。然后两个栈每次出栈一个节点,如果是重合节点,那么这两个节点是相等的。所以最后一个相等的节点就是第一个公共节点。代码# -*- coding:utf-8 -*-原创 2017-08-18 19:29:35 · 1426 阅读 · 0 评论 -
[剑指Offer 47] 不用加减乘除做加法(Java)
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路不用运算符号的计算,我们可以使用位运算。我们使用两个变量,一个记录当前位的数字,一个记录进位的数字。当进位数字不为0的条件下,迭代计算,直至进位数字为0。原创 2017-08-17 16:17:30 · 224 阅读 · 0 评论 -
[剑指Offer] 翻转单词顺序序列(Python)
题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么? 思路 思路...原创 2018-06-05 17:41:59 · 2000 阅读 · 0 评论 -
[剑指Offer] 二叉树的下一个结点(Python)
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路 分情况依次判断。 1. 若给定结点为空节点,则返回空 2. 若给定结点有右子树,则将结点指向右子树的根节点,然后找到其最左边的叶节点并返回 3. 若给定结点没有父节点,则返回空 4. 若给定结点有父节点,若给定结点是其父节点的...原创 2018-06-05 18:35:51 · 853 阅读 · 1 评论 -
[剑指Offer] 表示数值的字符串(Python)
题目描述 将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。 注意事项 不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。 思路 递归实现。将左右子数连接起来,我们需要得到每棵子树的头节点和尾节点。头节点就是根节点。尾节点依次可能是右子树的尾结点(若右子树不空),左子树...原创 2018-06-05 22:27:34 · 970 阅读 · 0 评论 -
[剑指Offer] 构建乘积数组(Python)
题目描述 给定一个数组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]。不能使用除法。 思路 上下三角分别连乘 代码 # -*- coding:utf-8 -*- class Solution: def multiply(self, A): # w...原创 2018-06-05 22:50:10 · 463 阅读 · 0 评论