剑指Offer
文章平均质量分 62
桔兮
女程序媛一枚,各位大佬多多指教
展开
-
leetcode 287. 寻找重复数【Medium】【数组】 && 剑指Offer 面试题3 题目2:不修改数组找出重复的数字
这道题leetcode和剑指Offer题目略有不同。leetcode说数组中的重复数可能不止一个,但是结果要求返回一个就行;剑指Offer上说只有一个重复的数,但是重复的次数不一定。两个题目的共性就是只需要返回一个重复的数即可。leetcode 题目:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数...原创 2018-10-18 09:34:44 · 268 阅读 · 0 评论 -
【leetcode】 91. 解码方法 & 【剑指Offer】 46.把数字翻译成字符串
题目:一条包含字母A-Z的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释:它可以解码为 "AB"(1 2)或者 "L"(12)。示例2:输入: "226"输出: 3解释:它可以解码为 "B...原创 2019-04-09 10:40:11 · 519 阅读 · 0 评论 -
【leetcode】64. 最小路径和 & 【剑指Offer】47.礼物的最大价值
题目:给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。代码:class Solution(object): def minP...原创 2019-04-09 16:43:32 · 356 阅读 · 0 评论 -
【leetcode】264. 丑数 II & 【剑指Offer】49.丑数
题目:编写一个程序,找出第n个丑数。丑数就是只包含质因数2, 3, 5的正整数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1是丑数。 n不超过1690。代码:class Solution: def nthUglyNumber(self, n: ...原创 2019-04-17 09:17:36 · 114 阅读 · 0 评论 -
【leetcode】3. 无重复字符的最长子串 & 【剑指Offer】48.最长不含重复字符的子字符串
题目:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重...原创 2019-04-15 09:58:39 · 189 阅读 · 0 评论 -
【leetcode】230. 二叉搜索树中第K小的元素 & 【剑指Offer】54.二叉树的第K大节点
题目:给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。说明:你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。示例 1:输入: root = [3,1,4,null,2], k = 1 3 / \ 1 4 \ 2输出: 1示例 2:输入: root = [5,3,6,2,4,nul...原创 2019-04-22 19:21:40 · 548 阅读 · 0 评论 -
【leetcode】 155. 最小栈 (Easy) & 【剑指Offer】30.包含min函数的栈
题目:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStac...原创 2018-09-11 21:11:02 · 219 阅读 · 0 评论 -
【leetcode】79. 单词搜索【回溯】& 【剑指Offer】12.矩阵中的路径
题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "...原创 2019-04-18 17:21:02 · 265 阅读 · 0 评论 -
【leetcode】179. 最大数 & 【剑指Offer】45.把数组排成最小的数
题目:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。示例 1:输入: [10,2]输出: 210示例2:输入: [3,30,34,5,9]输出: 9534330说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数。代码:class Solution(object): def largestNumber(self, n...原创 2019-04-09 09:38:49 · 197 阅读 · 0 评论 -
【leetcode】387. 字符串中的第一个唯一字符 & 【剑指Offer】50.第一个只出现一次的字符
题目:给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.代码:class Solution: def firstUniqChar(self, s: str) -> int: dic = {} f...原创 2019-04-11 10:44:52 · 220 阅读 · 0 评论 -
leetcode 240. 搜索二维矩阵 II【数组】【Medium】&&剑指Offer面试题4:二维数组中的查找
题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 1...原创 2018-10-18 15:00:29 · 157 阅读 · 0 评论 -
leetcode 70. 爬楼梯【递归】【动态规划】【Easy】&& 剑指Offer面试题10 题目2:青蛙跳台阶问题
题目:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶...原创 2018-10-26 15:27:58 · 595 阅读 · 0 评论 -
leetcode 101. 对称二叉树 &剑指Offer 28【树】【深度优先搜索】【广度优先搜索】
题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代...原创 2019-02-18 12:07:33 · 140 阅读 · 0 评论 -
【剑指Offer】面试题14:剪绳子【动态规划】
代码:#!/usr/bin/pythonrope = 10if rope < 2: print(0)if rope == 2: print(1)if rope == 3: print(2)res = [None]*(rope+1)res[0] = 0res[1] = 1res[2] = 2res[3] = 3for i in range(4,rope+1):...原创 2019-03-29 19:52:32 · 119 阅读 · 0 评论 -
【剑指Offer42】连续子数组的最大和&【leetcode】53.最大子序和
题目:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。代码:class Solution(obje...原创 2019-04-04 15:05:59 · 127 阅读 · 0 评论 -
leetcode 169. 求众数 (Easy)(数组)
题目:给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路: 首先,对数组进行排序操作。求出目标值最少出现的次数length。依次遍历整个数组,让当前...原创 2018-09-14 16:43:50 · 225 阅读 · 0 评论 -
【leetcode】34. 在排序数组中查找元素的第一个和最后一个位置&【剑指Offer】53.在排序数组中查找数字
题目:给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,...原创 2019-04-11 10:36:19 · 245 阅读 · 0 评论 -
【剑指Offer】13.机器人的运动范围【回溯】
题目:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?代码:# -*- coding...原创 2019-04-18 19:58:36 · 117 阅读 · 0 评论