- 博客(32)
- 收藏
- 关注
原创 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素每个元素只留下一个。链表的基本操作不多解释 def deleteDuplicates(self, head): if not head: return head cur = head.next pre = head while cur: if cur....
2018-02-11 00:17:00
149
原创 爬楼梯
假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?样例 比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法返回 3这道题实际上有些迷惑人 仔细分析如果线条一节就会剩下 f(n-1)种答案 而先跳两节则有 f(n-2)个 总共为发f(n) = f( n - 1) + f(n - 2)即斐波那契class Solut...
2018-02-11 00:13:52
182
原创 最小路径和
给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。 注意事项 你在同一时间只能向下或者向右移动一步这道题和之前做的一道三角形的动态规划差不多,但是更难一些,例 a b c d e f g h i如果要到i就必须从f 或h走,只要选出其中较小的即可,再用递归算出走每一个格的最小数即可,但第一行第一列特殊处理class Solution: ...
2018-02-11 00:09:25
171
原创 删除排序数组中的重复数字Ⅱ
def removeDuplicates(self, A): # write your code here i = 0 while i < len(A)-2: if A[i] == A[i+2]: A.remove(A[i]) else: ...
2018-02-08 21:57:24
255
原创 删除排序数组中的重复数字
给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。 哪家公司问你的这个题? LinkedIn Airbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Facebook Bloomber...
2018-02-08 21:51:04
157
原创 二叉树的最大深度
递归不解释class Solution: """ @param root: The root of binary tree. @return: An integer """ def maxDepth(self, root): # write your code here if root == None: ...
2018-02-08 21:47:56
117
原创 平衡二叉树
给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的这个题? LinkedIn Airbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Facebo...
2018-02-08 21:47:02
132
原创 数字三角形
给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。 注意事项 如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。 哪家公司问你的这个题? LinkedIn Airbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Fa...
2018-02-08 21:44:15
164
原创 在二叉树中插入节点
给定一棵二叉查找树和一个新的树节点,将节点插入到树中。你需要保证该树仍然是一棵二叉查找树。这道题真的难住我了,难点主要在于挑战说尽量不要用递归,但我想了半天还是没想出办法,只好还是用了递归重建二叉树class Solution: """ @param: root: The root of the binary search tree. @param: node: inser...
2018-02-07 23:53:03
665
原创 落单的数
给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。这个题一开始是想用对列表进行操作的后来觉得麻烦就直接用字典做了 def singleNumber(self, A): numdic = {} for i in A: if i in numdic: numdic[i] +...
2018-02-07 23:50:48
182
原创 中位数
给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。这个题无非也就是排序后判断奇偶 def median(self, nums): nums.sort() num = len(nums) if num % 2 == 0: return nums[nu...
2018-02-07 23:48:32
173
原创 后序遍历二叉树
给出一棵二叉树,返回其节点值的后序遍历。您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题?LinkedInAirbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Facebook Bloomberg Zenefits
2018-02-07 00:12:39
194
原创 中序遍历二叉树
给出一棵二叉树,返回其中序遍历您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题? LinkedIn Airbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Facebook Bloomberg Zenefits Yelp
2018-02-07 00:10:47
110
原创 前序遍历二叉树
给出一棵二叉树,返回其节点值的前序遍历。您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题? LinkedIn Airbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Facebook Bloomberg Zenefits Ye
2018-02-07 00:09:23
122
原创 搜索插入位置
写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数。这道题简单在于不要求插入而是求该插入的位置因此只需比较即可 class Solution: def searchInsert(self, A, target): if not A : retu
2018-02-07 00:06:10
223
原创 搜索二维矩阵
写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数这个题目用python列表简直易如反掌 class Solution: def searchMatrix(self, matrix, target): for i in range(len(matrix)):
2018-02-06 23:59:26
138
原创 翻转字符串
给定一个字符串,逐个翻转字符串中的每个单词。您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题? LinkedIn Airbnb Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Uber Google Apple Facebook Bloomberg Zenefits
2018-01-31 01:13:57
130
原创 比较字符串
比较两个字符串A和B,确定A中是否包含B中所有的字符。字符串A和B中的字符都是 大写字母注意事项 在 A 中出现的 B 字符串里的字符不需要连续或者有序。没什么难的,正好回顾一下python就用python写了class Solution: """ @param: A: A string @param: B: A string @return:
2018-01-31 01:12:11
155
原创 两数之和
给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 0 到n-1。注意事项你可以假设只有一组答案。只想了个简单方法遍历,等有时间做一下挑战class Solution: def twoSum(self, numbers, targe
2018-01-31 01:10:18
128
原创 平面列表
给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。注意事项如果给定的列表中的要素本身也是一个列表,那么它也可以包含列表。因为是列表就第一时间想到用python做,只要简单的用一个递归就可以了class Solution(object): def flatten(self, nestedList): # W
2018-01-31 01:08:37
189
原创 主元素
给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。注意事项 You may assume that the array is non-empty and the majority number always exist in the array.您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题? A
2018-01-26 23:27:33
190
原创 最小子数组
给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。注意事项 子数组最少包含一个数字您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题? Airbnb LinkedIn Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Microsoft Go
2018-01-26 22:57:15
201
原创 最大子数组
给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。注意事项 子数组最少包含一个数看到这个题以为很简单,但其实有些难,一开始死活想不出来怎么做是太过于纠结判断子数组的范围了,然而这道题是求最大子数组的和,看到标签上写了贪心算法,就仔细学了一下,设置变量sum来代表数组元素相加的和,当sum小于0时就清sum为0 int length = a.size() ;
2018-01-26 22:55:41
88
原创 恢复旋转排序数组
给定一个旋转排序数组,在原地恢复其排序。您在真实的面试中是否遇到过这个题?Yes哪家公司问你的这个题? Airbnb LinkedIn Amazon Cryptic Studios Dropbox Epic Systems TinyCo Hedvig Microsoft Google Apple Yahoo Uber Facebook Bloom
2018-01-26 22:47:58
208
原创 翻转链表
题目:样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null挑战在原地一次翻转完成这个题目第一时间想到的是建立一个新的链表然后将原链表内容倒序存入,由于难度不大就不贴代码了这个挑战一开始以为应该交换节点内存储内容,但实现起来太过困难,于是乎想到直接交换指针。ListNode * reverse(ListNode *
2018-01-26 00:45:21
99
原创 二分查找
题目 :给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。这个问题也不是很难,一开始没有注意到要求找第一个出现的,然后就直接过了。 int binarySearch(vector &array, int target) { // write your
2018-01-26 00:41:38
124
原创 字符串查找
题目: 对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回-1一开始看到这个题模就想到了书上的BF暴力搜索算法,虽然通过了但是很浪费时间。然后学了一下kmp算法,觉得很高效。//BFint strStr(const char *source, const
2018-01-26 00:36:01
172
原创 Fizz Buzz 问题
问题:给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz.一开始看到这个问题以为很简单但做起来却发现自己错误百出主要要注意的是if else语句中的关系 vector fizzBuzz(int n) { // write you
2018-01-23 23:15:59
911
原创 旋转字符串
问题: 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例 : 对于字符串 "abcdefg". offset=0 => "abcdefg" offset=1 => "gabcdef" offset=2 => "fgabcde" offset=3 => "efgabcd"仔细观察不难发现平移的位数只要一个个平移(offset % 字符串长度即可
2018-01-23 23:12:44
158
原创 合并排序数组
问题: 合并两个排序的整数数组A和B变成一个新的数组。碰到这个题,第一想到的是将两个数组整合到一起再进行排序,但仔细一想对于与两个已经排好序的数组来说这样做会浪费时间,于是想到了归并排序算法中对两段数组进行合并并排序的算法. vector mergeSortedArray(vector &A, vector &B) { // write your code here
2018-01-23 22:51:43
149
原创 求尾部和的零
题目: 设计一个算法,计算出n阶乘中尾部零的个数。 对于该题一开始有一个最简单的做法就是把阶乘直接计算然后再进行判断结果包含多少零,当然虽然简单易懂但是这种做法浪费时间且效率极低如果n过大就难以计算。long long jie(int n){ int i; long long result = n; for(i = n - 1;i > 1;i--) { result =
2018-01-23 22:47:06
147
原创 不使用加法的A+B问题
代码内容:int aplusb(int a, int b) { // write your code here int step1 = a ^ b; int step2 = a & b; while(step2) { int c = step2 int
2018-01-23 00:03:32
310
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人