
剑指Offer
WangRenFengzzZ
人生有些事不做可能没啥影响,但是那些事是做可能会影响的一生!
展开
-
【剑指Offer】二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。已给函数模型(c++)class Solution {public: bool Find(int target, vector<vector<int> >...原创 2019-03-14 08:43:05 · 117 阅读 · 0 评论 -
【剑指Offer】
题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...原创 2019-07-25 17:10:20 · 95 阅读 · 0 评论 -
【剑指Offer】机器人的运动范围
题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?题意:在m x n 的矩阵中, 在...原创 2019-07-19 10:18:41 · 102 阅读 · 0 评论 -
【剑指Offer】栈的压入、弹出序列是否正确
题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)pushA -- popA思路:1、将pushA中的数目依次push到自己...原创 2019-07-15 17:07:45 · 103 阅读 · 0 评论 -
【剑指Offer】反转链表
public class Solution { public ListNode ReverseList(ListNode head) { if(head==null) return null; //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null; ListNode pre ...转载 2019-06-20 20:42:00 · 119 阅读 · 0 评论 -
111
链接:https://www.nowcoder.com/questionTerminal/75e878df47f24fdc9dc3e400ec6058ca来源:牛客网public class Solution {public ListNode ReverseList(ListNode head) {if(head==null)...原创 2019-03-21 18:51:19 · 266 阅读 · 0 评论 -
【剑指Offer】输出倒数第K个链表节点
题目描述输入一个链表,输出该链表中倒数第k个结点。//用两个指针,第一个指针先走k-1步第二个指针再开始和他一起走知道走到第一个指针的next域为空/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = va...原创 2019-03-21 15:37:57 · 90 阅读 · 0 评论 -
【剑指Offer】二进制中1 的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。观摩大佬做法:为了取得1的个数,可以用这个数跟 1 相与之后并右移,但是如果是负数的话,则会出现左边补数的时候会出现一直补1 的过程则会出现死循环。解法:相与 的数 自己左移,相当于这个数每次都跟1相与,虽然自己没有右移,当时下面的数左移相当与自己右移,而且完美避免死循环!publ...原创 2019-03-16 17:39:32 · 112 阅读 · 0 评论 -
【剑指Offer】变态青蛙跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。大佬解析:f(n)=f(n-1) +f(n-2) + f(n-3) + ......+ f(0);然后求f(n-1) 其实就是将n-1代入nf(n-1)=f((n-1)-1) + f((n-1)-2) + f((n-1)-3) +f ((n-1)-4...原创 2019-03-16 11:28:43 · 110 阅读 · 0 评论 -
【剑指Offer】旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路:直接找数组由大变小的的临界点returnimport java.util.ArrayList;...原创 2019-03-15 10:31:13 · 79 阅读 · 0 评论 -
【剑指Offer】用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:1、队列的Push操作就是栈的Push操作2、队列的pop操作就需要用另外一个栈存当前栈Pop出来的数据,刚好能将入栈的顺序反转,变成先入栈的也先出栈!Java语言实现import java.util.Stack;public class Solution {...原创 2019-03-15 09:46:03 · 105 阅读 · 0 评论 -
【剑指Offer】从尾到头打印链表
题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解析:可以用栈或者递归写!每次判断节点是否为空,如果不为空则进行下一个节点尝试,同时在新的链表中添加当前节点形成递归!/*** public class ListNode {* int val;* ListNode next = null;** ...原创 2019-03-14 10:02:27 · 80 阅读 · 0 评论 -
【剑指Offer】替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Solution { public String replaceSpace(StringBuffer str) { if(str==null){ ...原创 2019-03-14 09:15:58 · 122 阅读 · 0 评论 -
【剑指Offer】数组和为target
1、第一种思路使用快速排序,在排序以后进行查找2、使用Hash存储 2.1、将目标值放入map中的同时,计算当前放入的期望补集为 target-num[i];然后去map中去查找是否有补集。public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map = new H...原创 2019-09-12 11:44:53 · 385 阅读 · 0 评论