面试前有用的突击

今日找人突击面试经验和编程思路,虽然这些不能速成,但也是颇受启发,得到了几点告诫:

1.面试过程要循序渐进,先从最简单的解决思路开始,逐渐优化到次优和最优

2.准备面试,各种类型的题目都接触一点,txt写代码和想思路的时间各占一半

3.当我们拿到题目的时候,首先要想怎么用逻辑思维解决这个题目,然后思考编程怎么实现,不要直接用编程思维去想题目,这样非常容易卡死。

下面描述几个算法题:

1.微软的2个题目其1:

https://hihocoder.com/problemset/problem/1499

难度L2

对于任意一个机器人而言,有三种状态:造机器人、做任务+造机器人、一直做任务。最优的情况一定是先造足够多的机器人,然后开始做任务,因为如果你交叉进行,那么做相同任务花费的时间可能更多,因为一个机器人做任务和造机器人穿插进行所做的任务<机器人造相同数目的机器人然后一直做任务。贪心策略

2.微软的2个题目-其2

https://hihocoder.com/problemset/problem/1500

难度L3

这个题目本身不是特别难,但是很复杂,是一个与树相关的问题。每一个节点都可以求一个最小代价,逐层向上。【背包问题:能够获取足够信息的最小代价(每个点仅与自己的孩子有关)】

3.Different ways to addParentheses

https://leetcode.com/problems/different-ways-to-add-parentheses/#/description

递归+记忆化

从数学的思维来理解,而不是加括号的方式来理解,因为括号只是一种运算优先级的表示,括号要加起来,可能能加很多个。从数学思维来理解,考虑最后一个运算的符号,可能是所有符号中的任何一个,左边一坨的结果集和右边一坨的结果集操作【递归】,某两个数字之间得到的结果集是固定的,那么可以用dict记录下来【记忆化】。

可以用python的set来实现

import collections

s = collections.Counter()

s.update("aaabbbbcc")

print(s)

4.BestTime to Buy and Sell Stock with Cooldown

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/#/description

动态规划

如果没有销售冷冻的这种情况,任何时候我当前的操作均由下一天决定,如果第二天股票涨了那我就买,如果第二天股票跌了那我就卖出去,在不断地买卖过程中累积利润。

F(I,j):第i天开始状态为j;如果j为手上持股状态,该值表示股票数目;如果j表示手上不持股状态,该值表示总利润。

F(I,手上持股)=max { F(I-1,手上不持股)/Price(I-1),F(I-1,手上持股)}

F(I,手上不持股/前一天刚卖,今天冷冻)=F(I-1,手上持股)*Price(I-1)

F(I,手上不持股/今天不冷冻)=max {F(I-1,手上不持股/不冷冻),F(I-1),手上不持股/冷冻}

Function表示的是状态,+-*/表示状态之间的操作【动态规划】

5.贪心策略

Minimum Number of Arrows to Burst Balloons

https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/#/description

从数学的思路去思考,每次找最小的右端点,能够保证射中的最多,然后找到端点后,将射中的区间移除。

6.中位数

https://leetcode.com/problems/wiggle-sort-ii/#/description

找到中位数,将中位数右边的数字插入左边的序列。O(n)的时间找中位数,随机选取一个数,将比他大的放左边,比他小的放右边,取中位数下标的那一边。

7.位运算

https://leetcode.com/problems/integer-replacement/#/description

使用动态规划的思路,先将这个数转换成二进制,偶数就是移位操作【右移】。基数有两种操作,取更小的那个。

F(n):n为偶数直接右移一位;n为基数取min【+1或者-1】

8.拓扑排序

https://leetcode.com/problems/course-schedule/#/description

拓扑排序,每一个课程算是一个树的节点,有依赖关系的课程建立一条边。如果这些点和边可以构成有向无环图,有解;如果有环,则无解。

思路1:建立一个队列,找入度为0的点加入队列,遍历队列中的点,将每个点的后继加入图,同时把该后继的入度减1,标记已经加入图的点。如果在这个过程中遇到了入度为0的点就把他加入图。如果最后图中没有包含所有的点,则无解。

思路2:将所有的边反向,你要输出一个点,必须输出这个点的前驱【反向边就是后继】,这样保证先修,知道你输出了所有的点,如果不能那就无解。

9.并查集:维护连通性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容