• 博客(113)
  • 收藏
  • 关注

原创 巨硬家面试题:字符串查找(带解题思路)

对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。在线做题地址说明在面试中我是否需要实现KMP算法?不需要,当这种问题出现在面试中时,面试官很可能只是想要测试一下你的基础应用能力。当然你需要先跟面试官确认清楚要怎么实现这个题。《九章算法班》中讲过比KMP更简单的算法:Rabin-karp 算法,可免费试听。样例 1:输入: source = "source" ,

2020-08-25 09:40:34 1050 2

原创 阿里2020最新动态规划题:背包问题

在n个物品中挑选若干物品装入背包,最多能装多满?假设背包的大小为m,每个物品的大小为A[i]。你不可以将物品进行切割。点此在线做题样例 1:输入: [3,4,8,5], backpack size=10输出: 9样例 2:输入: [2,3,5,7], backpack size=12输出: 12算法:DP从已知的题目中,可以总结出以下两点:每件物品只有一种每件物品最多选择一次那么考虑对于前i件的物品在容量为w的背包下,最大的装载量是多少,由此可以总结出对应的子结构,进

2020-08-21 15:21:29 402

原创 百度最新面试题:祖玛游戏思路详解

这是一个祖玛游戏。一行球放在桌面上,球被涂上了红(R)、黄(Y)、蓝(B)、绿(G)和白(W)这么几种颜色,同时你也拥有几个球。每一次,从你拥有的球当中拿出一个,插入到当前行当中(包括最左边和最右边)。然后,如果有三个或更多的同色球挨在一起,然后就消除这几个球。一直这么做直到没有更多的球可以消除。找到最少的需要插入的球的数量,使得所有的球都可以被删除。如果不能删除所有的球,那么就返回-1。初始的行不会拥有三个及以上的连续的同色球。行中的球的数量不会超过20,用名为"borad"的输入字符串表示。

2020-08-17 11:54:06 871

原创 LeetCode/LintCode 题解丨一周爆刷分治法:合并两棵二叉树

LeetCode/LintCode 题解丨一周爆刷分治法:合并两棵二叉树

2022-08-02 18:35:04 191 1

原创 LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串

LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串

2022-07-29 09:20:28 189

原创 LeetCode/LintCode 题解丨一周爆刷字符串:文字并排

LeetCode/LintCode 题解丨一周爆刷字符串:文字并排

2022-07-28 20:05:33 181

原创 LeetCode/LintCode 题解丨一周爆刷字符串:简化路径

LeetCode/LintCode 题解丨一周爆刷字符串:简化路径

2022-07-27 11:58:49 1333

原创 LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串

LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串

2022-07-26 10:09:02 264

原创 LeetCode/LintCode 题解丨一周爆刷字符串:查找和替换模式

LeetCode/LintCode 题解丨一周爆刷字符串:查找和替换模式

2022-07-25 14:14:15 209

原创 LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组

LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组

2022-07-22 11:43:04 1533

原创 LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

2022-07-21 09:10:00 584

原创 LeetCode/LintCode 题解丨一周爆刷字符串:空格替换

LeetCode/LintCode 题解丨一周爆刷字符串:空格替换

2022-07-20 09:59:51 157

原创 LeetCode/LintCode 题解丨一周爆刷字符串:独特的摩尔斯编码

LeetCode/LintCode 题解丨一周爆刷字符串:独特的摩尔斯编码

2022-07-19 11:46:12 149

原创 LeetCode/LintCode 题解丨一周爆刷双指针:寻找重复的数

LeetCode/LintCode 题解丨一周爆刷双指针:寻找重复的数

2022-07-18 14:32:26 150

原创 LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串

LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串

2022-07-15 10:08:11 157

原创 LeetCode/LintCode 题解丨一周爆刷双指针:最小范围

LeetCode/LintCode 题解丨一周爆刷双指针:最小范围

2022-07-14 15:39:10 1774

原创 LeetCode/LintCode 题解丨一周爆刷双指针: 两数之和

LeetCode/LintCode 题解丨一周爆刷双指针: 两数之和

2022-07-14 15:23:14 151

原创 LeetCode/LintCode 题解丨一周爆刷双指针:K个空的位置

LeetCode/LintCode 题解丨一周爆刷双指针:K个空的位置

2022-07-11 15:04:47 180

原创 LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉

LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉

2022-07-07 10:17:24 172

原创 2022年Apple春招真题:二叉树的层次遍历

2022年Apple春招真题:二叉树的层次遍历

2022-06-29 09:16:47 184

原创 2022年美团春招真题:字符串排序

2022年美团春招真题:字符串排序

2022-06-28 13:09:14 169

原创 2022年百度春招真题:最长上升子序列

2022年百度春招真题:最长上升子序列

2022-06-27 17:12:31 108

原创 2022年微软面试真题:最大子数组

描述:给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。每个子数组的数字在数组中的位置应该是连续的。样例 1:输入:nums = [−2,2,−3,4,−1,2,1,−5,3]输出:6解释:符合要求的子数组为[4,−1,2,1],其最大和为 6。样例 2:输入:nums = [1,2,3,4]输出:10解释:符合要求的子数组为[1,2,3,4],其最大和为 10。挑战要求时间复杂度为O(n)...

2022-05-09 14:02:00 282

原创 亚马逊面试真题:二叉树的层次遍历

描述:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)首个数据为根节点,后面接着是其左儿子和右儿子节点值,"#"表示不存在该子节点。节点数量不超过20。在线测评地址样例 1:输入:tree = {1,2,3}输出:[[1],[2,3]]解释:1/ \2 3它将被序列化为{1,2,3}样例 2:输入:tree = {1,#,2,3} 输出:[[1],[2],[3]] 解释:1 \ 2 / 3 它将被序列化为{1,#,2,3}挑

2022-05-06 11:22:48 333

原创 亚马逊经典真题:三数之和

描述:给出一个有n个整数的数组S,在S中找到三个整数a, b, c,找到所有使得a + b + c = 0的三元组。在线测评地址样例 1:输入:numbers = [2,7,11,15]输出:[]解释:找不到三元组使得三个数和为0。样例 2:输入:numbers = [-1,0,1,2,-1,-4]输出:[[-1, 0, 1],[-1, -1, 2]]解释:[-1, 0, 1]和[-1, -1, 2]是符合条件的2个三元组。源代码:class Solution:

2022-05-05 11:41:18 309

原创 谷歌真题回顾:下一个排列

不能错过的谷歌面试真题

2022-05-04 11:36:13 213

原创 微软面试真题:全排列

解决面试中的全排列问题

2022-04-29 11:56:51 127

原创 亚马逊面试宝典:两数之和

描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到 n-1。在线测评地址样例 1:输入:numbers = [2,7,11,15]target = 9输出:[0,1]解释:numbers[0] + numbers[1] = 9样例 2:输入:numbers = [15,2,7,11]target = 9输出:[1,2]解释:num

2022-04-28 11:30:12 62

原创 谷歌面试真题分享

谷歌面试题:插入区间描述:给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。在线测评地址样例 1:输入:区间列表 = [(1,2), (5,9)]新的区间 = (2, 5)输出:[(1,9)]解释:插入后区间有重叠,需要合并区间。样例 2:输入:区间列表 = [(1,2), (5,9)]新的区间 = (3, 4)输出:[(1,2), (3,4), (5,9)]解释:区间按

2022-04-27 10:58:47 284

原创 微软面试真题分享

想进入大厂工作,你不能错过的经验分享

2022-04-26 11:35:38 154

原创 Snapchat算法面试上岸指南

Snapchat面试题: 单词缩写描述给出一组 n 个不同的非空字符串,您需要按以下规则为每个单词生成 最小 的缩写。从第一个字符开始,然后加上中间缩写掉的字符的长度,后跟最后一个字符。如果有冲突,就是多个单词共享相同的缩写,使用较长的前缀,而不是仅使用第一个字符,直到使单词的缩写的映射变为唯一。 换句话说,最终得到的缩写不能映射到多个原始单词。如果缩写不会使单词更短,则不进行缩写,保持原样。n 和每个单词的长度均不会超过 400。每个单词的长度大于 1。这些词只包括小写英文字母。返回答

2021-09-02 13:24:09 172

原创 经验分享:带你快速通过字节算法面试

字节跳动面试题: 找零描述某国的货币系统包含面值 1 元、4 元、16 元、64 元共 4 种硬币,以及面值 1024 元的纸币。你现在使用 1024 元的纸币购买了一件价值为 N,0<N<=1024 元的商品,请问最少会收到多少个硬币作为找零。在线评测地址样例1样例输入1:amount = 1014样例输出1:4找零 2 个 4 元硬币,和 2 个 1 元硬币。样例2样例输入2:amount = 1004样例输出2:2找零 1 个 16 元硬币,1 个

2021-09-01 10:25:10 147

原创 Apple算法面试宝典:字符串/区间合并

苹果面试题: 区间合并描述现在给你两个字符串区间(按字典顺序), 请你判断两个区间是否可以合并。字符串区间[a, b),包括所有以a开头的字符串。例如,区间[a, b)和区间[ab,c)是可以合并的,区间[a,b)和区间[b, c]也是可以合并的。若是可以合并请返回true, 不可以请返回false。若两个区间A和B,满足A⋃B是一个连续区间,则A和B可合并。在线评测地址:https://www.lintcode.com/problem/1889/?utm_source=sc-csdn-sw

2021-08-31 11:06:37 206

原创 面试真题分享:我是如何拿到脸书offer的

脸书面试题: 目的地的最短路径描述给定表示地图上坐标的2D数组,地图上只有值0,1,2。0表示可以通过,1表示不可通过,2表示目标位置。从坐标[0,0]开始,你只能上,下,左,右移动。找到可以到达目的地的最短路径,并返回路径的长度。地图一定存在且不为空,并且只存在一个目的地保证targetMap[0][0]=0在线评测地址样例1输入:[ [0, 0, 0], [0, 0, 1], [0, 0, 2]]输出: 4说明: [0,0] -> [1,0] -> [2,0]

2021-08-30 11:28:03 149

原创 秋招在即,你准备好了吗?领英算法面试真题分享!

领英面试题:旋转字符串II描述给出一个字符串(以字符数组形式给出),一个右偏移和一个左偏移,根据给出的偏移量循环移动字符串,并保存在一个新的结果集中返回。(left offest表示字符串向左的偏移量,right offest表示字符串向右的偏移量,左偏移量和右偏移量计算得到总偏移量,在总偏移量处分成两段字符串并交换位置)。在线评测地址样例1输入:str ="abcdefg", left = 3, right = 1输出:"cdefgab"解释:左偏移量为3,右偏移量为1,总的偏移量为向左2,

2021-08-27 09:17:12 104

原创 分享一些阿里巴巴算法面试真题及答案

阿里巴巴面试题:连接字符串描述给定一个字符串列表,你可以将这些字符串连接到一个循环中,在连入循环之前,你可以选择将其反转。在所有可能的循环中,你需要在断开循环之后找到字典序最大的字符串。具体来说,要找到答案,您需要经历两个阶段:将所有字符串连接到一个循环中,在一个字符串连入循环之前,你可以选择将它反转。但是你需要按照给定的顺序将它们连接起来。在循环的某个位置断开,得到一个正常的字符串。你的任务是在所有可能得到的字符串中找到字典序最大的一个。注意,字符串连接顺序以及循环的方向都是从左到右的(即

2021-08-24 10:39:35 384

原创 2021微软算法面试真题回顾

微软面试题: 最低加油站数量描述汽车从起始位置行驶到目的地,该目的地位于起始位置以东的目标英里处。一路上,有加油站。 每个station[i]代表一个加油站,它位于起始位置以东station[i] [0]英里处,并且有station[i] [1]升汽油。汽车开始时有一个无限的汽油罐,最初燃料中含有燃料。 它每1英里就会使用1升汽油。当汽车到达加油站时,它可能停下来并加油,将所有汽油从车站转移到汽车中。为了到达目的地,汽车必须加油的最少次数是多少? 如果无法到达目的地,则返回-1。请注意,如果汽

2021-08-23 10:20:36 209

原创 2021京东算法面试真题,含泪整理带Leetcode解析

京东面试题:字符删除描述给出两个字符串 str 和 sub,你的任务是在 str 中完全删除那些在 sub 中存在的字符。字符串中包含空格1≤len(str),len(sub)≤105在线评测地址样例1输入: str="They are students",sub="aeiou"输出: "Thy r stdnts"解题思路用一个数组储存第二串中出现过的元素,然后遍历第一数组,将未出现在第二数组中的元素保存,最后输出答案源代码class Solution: """

2021-08-19 11:35:45 1114

原创 上岸苹果分几步?看看这份面试指南吧!(附算法真题)

苹果面试题: 比较版本号描述比较两个版本号version1和version2。如果version1 > version2返回1,如果version1 < version2返回-1,否则返回0。您可以认为版本字符串是非空的并且只包含数字和 . 字符。这个 ‘.’ 字符不表示小数点,用于分隔数字序列。例如,2.5不是“两个半”或“版本三的一半”,它是第二个第一级修订的第五个二级修订。在线评测地址样例1输入: version1 = "1",version2 = "01"输出: 0

2021-08-18 10:09:30 259

原创 到谷歌面试去!候选人必读的算法面试指南!

谷歌面试题:统计全为 1 的正方形子矩阵描述给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。1 <= arr.length <= 3001 <= arr[0].length <= 300在线评测地址样例1输入:matrix =[ [0,1,1,1], [1,1,1,1], [0,1,1,1]]输出:15解释: 边长为 1 的正方形有 10 个。边长为 2 的正方形有

2021-08-17 10:16:02 182

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除