346. Moving Average from Data Stream
题目描述
求一个滑动窗口内的平均值
算法
|
|
374. Guess Number Higher or Lower
题目描述
我们来玩猜数字游戏。游戏规则如下:
我挑选一个1到n之间的数字。你来猜我选的是哪个数字。
每一次你猜错,我都会告诉你数字高了还是低了。
你可以调用一个预定义的API guess(int num),返回3种结果 (-1, 1, 或 0):
算法
二分查找
|
|
375. Guess Number Higher or Lower II
题目描述
我们玩猜数字游戏。游戏如下:
我从1到n中选择一个数字。你需要猜我选的是哪个数字。
每一次你猜错,我都会告诉你数字是高了还是低了。
然而,当你选择某个数字x并且猜错,你需要支付$x。当你猜到我选的数字时胜出。
测试用例如题目描述。
给定n ≥ 1,计算你需要多少钱才可以确保赢得游戏。
提示:
游戏的最佳策略是最小化你面临的最大可能损失。另一种策略是最小化期望损失。在这里,我们关注第一种策略。
以一个小的输入为例(n = 3)。最坏情况下你会支付多少金额?
如果还是一筹莫展,可以参考这篇文章。
单纯的minimax递归实现即使对于很小的n都是非常耗时的。你必须使用动态规划。
作为思考题,你怎样修改代码来实现最小化的期望损失,而不是最小化的最坏损失?
算法
注意DP的解法,首先可以使用回溯,暴力的写出所有的解,之后再利用DP存储中间的状态变量
|
|
278. First Bad Version
题目描述
你是一名产品经理,正在领导团队开发一个新产品。不幸的是,产品的最新版本没有通过质量检测。由于每一个版本都是基于上一个版本开发的,某一个损坏的版本之后的所有版本全都是坏的。
假设有n个版本[1, 2, …, n],你想要找出第一个损坏的版本,它导致所有后面的版本都坏掉了。
给你一个API bool isBadVersion(version),返回某一个版本是否损坏。实现一个函数找出第一个损坏的版本。你应该最小化调用API的次数。
算法
|
|
658. Find K Closest Elements
题目描述
给定一个排序数组,两个整数k和x,求数组中距离x最近的k个数字。结果应该有序,距离相同时优先选择较小的数字。
算法
利用二分查找,之后确定两边的边界线
|
|
387. First Unique Character in a String
题目描述
给定一个字符串,寻找第一个不重复字符并返回其下标。如果不存在,返回-1。
注意:你可以假设字符串只包含小写字母。
算法
|
|