- 博客(77)
- 收藏
- 关注
原创 字符串置换
给定两个字符串,请设计一个方法来判定其中一个字符串是否为另一个字符串的置换。置换的意思是,通过改变顺序可以使得两个字符串相等。您在真实的面试中是否遇到过这个题? Yes样例"abc" 为 "cba" 的置换。"aabc" 不是 "abcc" 的置换。class Solution {public: /* * @param A: a string * @param B: a st...
2018-02-09 18:08:08 245
原创 空格替换
设计一种方法,将一个字符串中的所有空格替换成 %20 。你可以假设该字符串有足够的空间来加入新的字符,且你得到的是“真实的”字符长度。你的程序还需要返回被替换后的字符串的长度。 注意事项如果使用 Java 或 Python, 程序中请用字符数组表示字符串。您在真实的面试中是否遇到过这个题? Yes样例对于字符串"Mr John Smith", 长度为 13替换空格之后,参数中的字符串需要变为"Mr...
2018-02-09 17:57:18 198
原创 O(1)时间检测2的幂次
用 O(1) 时间检测整数 n 是否是 2 的幂次。您在真实的面试中是否遇到过这个题? Yes样例n=4,返回 true;n=5,返回 false.class Solution {public: /* * @param n: An integer * @return: True or false */ bool checkPowerOf2(int n) { ...
2018-02-08 17:57:12 162
原创 子数组之和
给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置 注意事项There is at least one subarray that it's sum equals to zero.您在真实的面试中是否遇到过这个题? Yes样例给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].class Solution {public: ...
2018-02-08 17:16:41 162
原创 二分查找
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。您在真实的面试中是否遇到过这个题? Yes样例在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。class Solution {public: /** * @param nums: Th...
2018-02-08 17:06:28 145
原创 哈希函数
在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:hashcode("abcd") = (ascii(a) * 333 + ascii(b) * 332 + ascii(c) *33 + ascii(d)) %
2018-02-07 20:33:41 1832
原创 将整数A转换为B
如果要将整数A转换为B,需要改变多少个bit位? 注意事项Both n and m are 32-bit integers.您在真实的面试中是否遇到过这个题? Yes样例如把31转换为14,需要改变2个bit位。(31)10=(11111)2(14)10=(01110)2class Solution {
2018-02-07 19:58:09 192
原创 链表倒数第n个节点
找到单链表倒数第n个节点,保证链表中节点的最少数量为n。您在真实的面试中是否遇到过这个题? Yes样例给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1./** * Definition of ListNode * class ListNode { * public: * int val;
2018-02-07 18:33:06 115
原创 两个字符串是变位词
写出一个函数 anagram(s, t) 判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。您在真实的面试中是否遇到过这个题? Yes说明What is Anagram?- Two strings are anagram if they can be the same after change the order of charact
2018-02-06 16:56:19 254
原创 判断字符串是否没有重复字符
实现一个算法确定字符串中的字符是否均唯一出现您在真实的面试中是否遇到过这个题? Yes样例给出"abc",返回 true给出"aab",返回 falseclass Solution {public: /* * @param str: A string * @return: a boolean
2018-02-06 16:38:32 175
原创 恢复旋转排序数组
给定一个旋转排序数组,在原地恢复其排序。您在真实的面试中是否遇到过这个题? Yes说明什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]样例[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5
2018-02-06 16:34:47 152 1
原创 中位数
给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。您在真实的面试中是否遇到过这个题? Yes样例给出数组[4, 5, 1, 2, 3], 返回 3给出数组[7, 9, 4, 5],返回 5class Solution {public: /*
2018-02-06 16:14:39 284
原创 数组剔除元素后的乘积
给定一个整数数组A。定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法。您在真实的面试中是否遇到过这个题? Yes样例给出A=[1, 2, 3],返回 B为[6, 3, 2]class Solution {public: /* *
2018-02-06 16:09:01 98
原创 主元素 III
给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的1/k。 注意事项数组中只有唯一的主元素您在真实的面试中是否遇到过这个题? Yes样例给出数组 [3,1,2,3,2,3,3,4,4,4] ,和 k = 3,返回 3class Solution {public: /*
2018-02-05 17:24:39 169
原创 二叉树的最小深度
给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。您在真实的面试中是否遇到过这个题? Yes样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2/**
2018-02-05 17:07:53 202
原创 交叉字符串
给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。您在真实的面试中是否遇到过这个题? Yes样例比如 s1 = "aabcc" s2 = "dbbca" - 当 s3 = "aadbbcbcac",返回 true. - 当 s3 = "aadbbbaccc", 返回 false.class Solution
2018-02-05 16:39:27 157
原创 链表求和
你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。您在真实的面试中是否遇到过这个题? Yes样例给出两个链表 3->1->5->null 和 5->9->2->null,返回 8->0->8->null/** * Defini
2018-02-05 15:57:03 131
原创 删除链表中倒数第n个节点
给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 注意事项链表中的节点个数大于等于n您在真实的面试中是否遇到过这个题? Yes样例给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->null./** * Def
2018-02-04 18:10:48 191
原创 链表划分
给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。你应该保留两部分内链表节点原有的相对顺序。您在真实的面试中是否遇到过这个题? Yes样例给定链表 1->4->3->2->5->2->null,并且 x=3返回 1->2->2->4->3->5->null/** * Definition of
2018-02-04 17:54:31 112
原创 二叉树的层次遍历 II
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历)您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ 9 20 / \ 15 7按照从下往上的层次遍历为:[ [15,7],
2018-02-04 15:52:10 169
原创 二叉树的层次遍历
给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问)您在真实的面试中是否遇到过这个题? Yes样例给一棵二叉树 {3,9,20,#,#,15,7} : 3 / \9 20 / \ 15 7返回他的分层遍历结果:[ [3], [9,20], [15,7]]/** * Definition
2018-02-04 15:46:15 214
原创 非递归
给出一棵二叉树,返回其节点值的后序遍历。您在真实的面试中是否遇到过这个题? Yes样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]/** * Definition of TreeNode: * class TreeNode { * public: *
2018-02-03 18:36:31 156
原创 颜色分类
给定一个包含红,白,蓝且长度为 n 的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。我们可以使用整数 0,1 和 2 分别代表红,白,蓝。 注意事项不能使用代码库中的排序函数来解决这个问题。排序需要在原数组中进行。class Solution {public: /* * @param nums: A
2018-02-03 17:15:53 169
原创 最接近的三数之和
给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。 注意事项只需要返回三元组之和,无需返回三元组本身class Solution {public: /* * @param numbers: Give an array numbers of n integer * @param targ
2018-02-03 16:48:36 165
原创 跳跃游戏 II
给出一个非负整数数组,你最初定位在数组的第一个位置。数组中的每个元素代表你在那个位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。您在真实的面试中是否遇到过这个题? Yes样例给出数组A = [2,3,1,1,4],最少到达数组最后一个位置的跳跃次数是2(从数组下标0跳一步到数组下标1,然后跳3步到数组
2018-02-03 15:48:18 107
原创 跳跃游戏
给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。class Solution {public: /* * @param A: A list of integers * @return: A boolean */
2018-02-02 20:04:38 102
原创 买卖股票的最佳时机 II
假设有一个数组,它的第i个元素是一个给定的股票在第i天的价格。设计一个算法来找到最大的利润。你可以完成尽可能多的交易(多次买卖股票)。然而,你不能同时参与多个交易(你必须在再次购买前出售股票)。您在真实的面试中是否遇到过这个题? Yes样例给出一个数组样例[2,1,2,0,1], 返回 2class Solution {public:
2018-02-02 19:18:15 294
原创 买卖股票的最佳时机
假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。您在真实的面试中是否遇到过这个题? Yes样例给出一个数组样例 [3,2,3,1,2], 返回 1 class Solution {public: /* * @param pr
2018-02-02 14:18:32 107
原创 主元素 II
给定一个整型数组,找到主元素,它在数组中的出现次数严格大于数组元素个数的三分之一。 注意事项数组中只有唯一的主元素您在真实的面试中是否遇到过这个题? Yes样例给出数组[1,2,1,2,1,3,3] 返回 1class Solution {public: /* * @param
2018-02-02 13:21:13 123
原创 统计数字
计算数字k在0到n中的出现的次数,k可能是0~9的一个值您在真实的面试中是否遇到过这个题? Yes样例例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)class Solution {public: /*
2018-02-02 13:16:33 122
原创 搜索插入位置
给定一个排序数组和一个目标值,如果在数组中找到目标值则返回索引。如果没有,返回到它将会被按顺序插入的位置。你可以假设在数组中无重复元素。class Solution {public: /* * @param A: an integer sorted array * @param target: an integer to be insert
2018-02-01 13:55:22 118
原创 带最小值操作的栈
实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。 注意事项如果堆栈中没有数字则不能进行min方法的调用您在真实的面试中是否遇到过这个题? Yes样例如下操作:push(1),pop(),push(2),
2018-02-01 13:49:20 195
原创 落单的数 II
给出3*n + 1 个的数字,除其中一个数字之外其他每个数字均出现三次,找到这个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,1,2,3,3,3,2,2,4,1] ,返回 4class Solution {public: /* * @param A: An integer array *
2018-02-01 11:55:34 116
原创 加油站
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。 注意事项数据保证答案唯一。class Solution {
2018-02-01 11:50:47 151
原创 落单的数 III
给出2*n + 2个的数字,除其中两个数字之外其他每个数字均出现两次,找到这两个数字。您在真实的面试中是否遇到过这个题? Yes样例给出 [1,2,2,3,4,4,5,3],返回 1和5class Solution {public: /* * @param A: An integer array * @r
2018-01-31 12:44:02 141
原创 最长单词
给一个词典,找出其中所有最长的单词。您在真实的面试中是否遇到过这个题? Yes样例在词典{ "dog", "google", "facebook", "internationalization", "blabla"}中, 最长的单词集合为 ["internationalization"]在词典{ "li
2018-01-31 12:32:47 247
原创 比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母 注意事项在 A 中出现的 B 字符串里的字符不需要连续或者有序。您在真实的面试中是否遇到过这个题? Yes样例给出 A = "ABCD" B = "ACD",返回 true给出 A = "ABCD" B = "AABC",
2018-01-31 12:19:09 167
原创 全排列
给定一个数字列表,返回其所有可能的排列。 注意事项你可以假设没有重复数字。您在真实的面试中是否遇到过这个题? Yes样例给出一个列表[1,2,3],其全排列为:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]class Solu
2018-01-30 16:56:30 116
原创 带重复元素的子集
给定一个可能具有重复数字的列表,返回其所有可能的子集 注意事项子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集您在真实的面试中是否遇到过这个题? class Solution {public: /* * @param nums: A set of numbers. * @retu
2018-01-30 16:52:03 359
原创 最短路径和
给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 注意事项你在同一时间只能向下或者向右移动一步您在真实的面试中是否遇到过这个题? Yesclass Solution {public: /* * @param grid: a list of
2018-01-30 16:48:35 428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人