摘要:
题目来源:leetcode4 寻找两个正序数组的中位数 题目描述: 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。 请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。 你可以假设 nums1 和 nums2 不会同时为空。 示例 阅读全文
摘要:
题目来源:leetcode739 每日温度 题目描述: 请根据每日气温列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 阅读全文
摘要:
题目来源:leetcode155 最小栈 题目描述: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素 阅读全文
摘要:
题目来源:leetcode94 二叉树的中序遍历 题目描述: 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 输出: [1,3,2] 解题思路: 借助栈来解决 /** * Definition for a binary tree node. * struct Tree 阅读全文
摘要:
题目来源:leetcode20 有效的括号 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "() 阅读全文
摘要:
leetcode 1 两数之和:用哈希 题目来源:leetcode 1 两数之和 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 阅读全文
摘要:
题目来源:leetcode 46 全排列 题目描述: 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 解题思路: 回溯,先固定第一个数( 阅读全文
摘要:
题目来源:leetcode322 零钱兑换 题目描述: 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输入: coins = [1, 2, 5], amount = 1 阅读全文
摘要:
题目来源:leetcode72. 编辑距离 题目描述: 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = "horse", w 阅读全文
摘要:
题目来源:剑指offer65:矩阵中的路径 题目描述 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 解题思路: 回 阅读全文
摘要:
题目来源:剑指offer41:和为S的连续正数序列 题目描述: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,1 阅读全文
摘要:
题目来源:剑指6旋转数组的最小数字 题目描述: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0, 阅读全文
摘要:
牛客网剑指offer贪心题目总结(共2道) 1、变态跳台阶(剑指9) 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 class Solution { public: int jumpFloorII(int number) { retu 阅读全文
摘要:
牛客网剑指offer递归和迭代题目总结(共3道) 1、斐波那契数列(剑指7) 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 n<=39 class Solution { public: int Fibonacci(int n) { 阅读全文
摘要:
牛客网剑指offer位运算和数学题目总结(共5道) 1、二进制中1的个数(剑指11,同leetcode191) 输入一个整数,输出该数32位二进制表示中1的个数。其中负数用补码表示。 解题思路: 如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变 阅读全文
摘要:
牛客网剑指offer树题目总结(共17道) 1、二叉树的前、中、后序遍历(递归和非递归) #include<iostream> #include<string> #include<vector> #include<stack> using namespace std; struct TreeNode 阅读全文
摘要:
题目来源:剑指offer63:数据流中的中位数 题目描述: 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMe 阅读全文
摘要:
栈和队列 1、用两个栈实现队列(剑指5) 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。 class Solution { public: void push(int node) { while(!stack2.empty()){ stack1.push(stac 阅读全文
摘要:
牛客网剑指offer链表题目总结(共8道) 1、从尾到头打印链表(剑指3) 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 方法一:借助栈 /** * struct ListNode { * int val; * struct ListNode *next; * ListNode(i 阅读全文
摘要:
牛客网剑指offer字符串题目总结(共10道) 1、替换空格(剑指2) 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路:先计算加了空格的总长度,然后从后往前复制。 class S 阅读全文