- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在面试中遇到了这个问题,但我仍然无法解决。是这样的
A person has to complete N units of work; the nature of work is the same.
In order to get the hang of the work, he completes only one unit of work in the first day.
He wishes to celebrate the completion of work, so he decides to complete one unit of work in the last day.
Given that he is only allowed to complete x, x+1 or x-1 units of work in a day, where x is the units of work
completed on the previous day.
How many minimum days will he take to complete N units of work?
Sample Input:
6
-1
0
2
3
9
13
Here, line 1 represents the number of input test cases.
Sample Output:
0
0
2
3
5
7
Each number represents the minimum days required for each input in the sample input.
我尝试使用硬币找零方法进行操作,但未能成功。
最佳答案
在 2k 天内,最多可以完成 2T(k) 次工作(其中 T(k) 是第 k 个三角数)。在 2k+1 天内,最多可以完成 T(k+1)+T(k) 个工作。那是因为如果有偶数 (2k) 天,最多的工作量是 1+2+3+...+k + k+(k-1)+...3+2+1。同样,如果天数为奇数 (2k+1),则最多的工作量为 1+2+3+...+k+(k+1)+k+...+3+2+1。
鉴于此模式,可以将工作量减少到任意值(大于 1)——只需减少工作量最大的那一天完成的工作,不要选择开始或结束日期。这永远不会使一天的工作量与相邻一天的差异不超过 1 的规则无效。
调用这个函数F。即:
F(2k) = 2T(k)
F(2k+1) = T(k)+T(k+1)
回想一下 T(k) = k(k+1)/2,所以等式简化了:
F(2k) = k(k+1)
F(2k+1) = k(k+1)/2 + (k+1)(k+2)/2 = (k+1)^2
根据这些观察结果,您可以通过找到至少可以完成 N 个工作单位的最少天数来解决原始问题。即最小的 d 使得 F(d) >= N。
例如,您可以使用二进制搜索来查找 d,或者最佳方法是求解方程。最小偶数解有 d/2 * (d/2 + 1) >= N,你可以用二次方程求解,最小奇数解有 (d+1)^2/4 >= N,它有解 d = ceil(2sqrt(N)-1)。找到最小偶数和奇数解后,您就可以选择两者中较小的一个。
关于algorithm - 查找最少天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36787008/
我正在尝试制作一个 javascript 正则表达式来匹配: 要求:9 个或更多数字。 可选:破折号、正斜杠、加号和空格字符。 禁止:任何其他字符 到目前为止我有 ^[0-9-+\/\s]{9,}$
我正在寻找从字符串中获取频率最高和频率最低的字符的最简单和最快速的方法。我正在使用 PHP $string = "google is good"; o 最多,i、l、e 或 d 最少。这只是一个虚构
我正在使用类似于此示例的雷达图: https://pchart.net/doc.draw.radar.html 我的数据范围从 1 分到 4 分,所以我配置了一些选项: $options = arra
我只想显示带有 的单词最低 4 个字符,实际上我可以限制点击次数并仅显示带有 min 的单词。 100 次点击 - 但我如何设置一个分钟。字符长度?谢谢你! function sm_list_rece
我已经经历了几个“n from M”类型的解决方案,但无法接近我所追求的目标,尽管这个问题可能以前已经以某种其他格式提出过。 我已经尝试过此 MySQL Group By with top N num
有没有办法让我添加 line-hight:22px;任何有两行或更多行的文本。但不影响不进入第二行的文本? 有没有办法只在 css 中实现这个? 最佳答案 您可以使用纯 CSS,但要注意 IE8 及以
我正在尝试测试输入中是否至少有 4 个数字和 1 个字符。我有这个工作,但只有当字符的顺序是0000a , 我希望它无论顺序如何都匹配,所以 00a00 , a0000 , aa00a00a都会匹配模
Fiddle Example 我想检索每种产品最便宜的二手价格和新价格。这是我想要得到的结果: NAME NEW_PRICE NEW_MERCHANT OLD_PRICE OLD_
由于没有 minlength=""用于输入,我如何制作执行以下操作的 if 语句: 如果用户没有输入超过 3 个字符,它将不会保存在数据库中。 这里是输入: QTY 有什么想法吗?? 最佳答案 注意
我有多个重复的 ID,需要将其缩减为一个值。通常我会使用聚合方法来组合列值(作为总和、平均值等)。在这里,我感兴趣的是只保留所有列中具有最多非空值的行: 鉴于此表: id col1 col2
我正在阅读使用 rails 4 进行敏捷 Web 开发的书 在用户模型中我有一个不能少于6个字符的密码验证 validates :password_digest, length: {minimum:
我在当前的 Web 应用程序中确实有以下 RegExp。 function myCyrillicValidator(text){ return XRegExp("^\\p{Cyrillic}+
如何验证一个字段 - 使其至少包含 3 个字母字符。 Valid: Something, Foobar 111. Invalid: ....... 最好的问候。阿斯比约恩莫雷尔 最佳答案 虽然我更喜欢
我使用 Angular-UISelect 来启用对我的下拉列表的搜索。 现在我有一个挑战。 需要创建一个 Controller 级过滤器(作用域为 Controller 而非应用程序),它从用户那里获
我正在尝试在自定义数据集上实现YOLOv2。每个类(class)都需要最少数量的图像吗? 最佳答案 每个类(class)没有用于培训的最低图像。当然,您所拥有的数字越小,模型收敛速度越慢,精度也会降低
我有一个示例数据: id|category_id|name -------------- 1|1|test 1 2|1|test 2 3|1|test 3 4|2|test 4 5|2|test 5
我需要一个可以验证的表达式,如下所示: 1234-567.890-123 最少 13 个数字 最多 3 个特殊字符(“-”和 .)<-- 无论在何处 我的解决方案[0-9]{13,}[-\.]{0,3
所以我认为我做对了? if(!preg_match('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+.{7,}$', $passOne)) {
所以我认为我做对了? if(!preg_match('^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+.{7,}$', $passOne)) {
我正在尝试编写一个正则表达式: 以字母开头 包含一个大写字母和一个小写字母 包含一个数字 不允许特殊字符 最少 8 个字符 到目前为止,我已经使用以下正则表达式设置了大写/小写条件、数字和最小字符要求
我是一名优秀的程序员,十分优秀!