剑指offer
wuhuimin521
这个作者很懒,什么都没留下…
展开
-
剑指Offer-链表中倒数第k个结点
解题思路借鉴 https://juejin.im/entry/5ad76bddf265da504460302f代码不一样题目描述输入一个链表,输出该链表中倒数第k个结点。标题思路为了能够只遍历一次就能找到倒数第k个节点,可以定义两个指针:快指针从链表的头指针开始遍历向前走k-1,慢指针保持不动;从第k步开始,慢指针也开始从链表的头指针开始遍历;由于两个指针的距离保持在k-1,当快指...原创 2020-04-20 10:18:01 · 263 阅读 · 0 评论 -
剑指offer:旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。结题思路: 链接:https://www.nowcoder.com/questionTerminal/9f...原创 2018-09-09 22:08:37 · 144 阅读 · 0 评论 -
剑指offer:两个链表的第一个公共节点
题目描述 输入两个链表,找出它们的第一个公共结点。公共结点是地址相同的两个结点,也就是同一个结点,由于是单向链表,所有从公共结点之后两链表重合。 方式一(代码繁琐,易理解版): 先给定两个指针使其能够表示两个链表的头结点(当前节点),首先让两个节点的长度保持一致,也就是确定好两个链表的长度length1,length2,使长度大的链表先遍历 |lenght1-lenght2| 个节点,让...原创 2018-09-02 22:09:53 · 108 阅读 · 0 评论 -
剑指offer:字符流中第一个不重复的字符(c++)
题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。class Solution{public: //Insert one char from st...原创 2018-09-02 20:52:05 · 322 阅读 · 0 评论 -
剑指offer:求1+2+3+...+n
题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。class Solution: def Sum_Solution(self, n): # write code here return sum(range(1,n+1));...原创 2018-05-31 21:13:37 · 117 阅读 · 0 评论 -
剑指offer:二进制中 一的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路: 首先判断n是不是负数,当n为负数的时候,直接用后面的while循环会导致死循环,因为负数 向左移位的话最高位补1 ! 因此需要一点点特殊操作,可以将最高位的符号位1变成0,也就 是n & 0x7FFFFFFF,这样就把负数转化成正数了,唯一差别就是最高位由1变成0,因为少了 一个1,所以count...原创 2018-06-07 15:32:34 · 116 阅读 · 0 评论 -
剑指offer:数组中重复的数
数组中重复的数字 在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。class Solution {public: bool duplicate(int num...原创 2018-06-13 20:35:09 · 148 阅读 · 0 评论 -
剑指offer:连续子数组的最大和
题目描述:HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度...原创 2018-06-06 16:57:14 · 103 阅读 · 0 评论 -
剑指offer:变态跳台阶(python)
题目描述 : 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路:关于本题,前提是n个台阶会有一次n阶的跳法。分析如下:f(1) = 1f(2) = f(2-1) + f(2-2) //f(2-2) 表示2阶一次跳2阶的次数。f(3) = f(3-1) + f(3-2) + f(3-3) ...原创 2018-05-30 10:15:10 · 687 阅读 · 0 评论 -
剑指offer:不用加减乘除做加法(c/c++)
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。思路:位运算首先看十进制是如何做的: 5+7=12,三步走第一步:相加各位的值,不算进位,得到2 第二步:计算进位值,得到10。如果这一步的进位值为0,那么第一步得到的值就是最终结果 第三步:重复上述两步,只是相加的值变成上述两步的得到的结果2和10,得到12。 同样我们可以用三步走的方...原创 2018-05-29 14:47:33 · 554 阅读 · 0 评论 -
剑指offer:二叉树的深度(python)
题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# ...原创 2018-05-29 10:05:34 · 109 阅读 · 0 评论 -
剑指offer:二叉树的镜像(python)
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10...原创 2018-05-29 09:46:55 · 254 阅读 · 0 评论 -
数据库sql实战(14-18)
14:获取当前(to_date=’9999-01-01’)薪水第二多的员工的emp_no以及其对应的薪水salaryselect emp_no,salary from salaries where to_date='9999-01-01' order by salary desc limit 1,115.题目描述 查找当前薪水(to_date=’9999-01-01’)排名第二多的员...原创 2018-06-02 22:17:49 · 173 阅读 · 0 评论 -
剑指offer:跳台阶(python)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。class Solution: def jumpFloor(self, number): # write code here if number==1 :return 1 if number==2 :return 2 a,b=1,2...原创 2018-06-02 21:28:28 · 475 阅读 · 0 评论 -
剑指offer:]斐波那契数列(python)
这道题和之前做的变态跳台阶是有区别的: f(n)=f(n-1)+f(n-2)class Solution: def Fibonacci(self, n): if n==0: return 0 if n==1 or n==2: return 1 a,b=1,1 for i...原创 2018-06-02 20:59:21 · 238 阅读 · 0 评论