由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Delete Digits怎样证明是最优解?
相关主题
google 电面问一道编程题--java
问道面试题details 2nd smallest element in an array
请教一道数据结构的设计题Amazon两轮电面
请教一道题目贡献面试题
请问Ilikebeatles的Google面试问题集里问个Amazon面试题
再问道题first missing integer类型的问题,哪个方法最优?
amazon phone interviewleetcode plus one 书上答案是不是错了?
bit manipulation 小题问一个L的题目
相关话题的讨论汇总
话题: 最优话题: digits话题: integer话题: delete话题: 证明
进入JobHunting版参与讨论
1 (共1页)
s****p
发帖数: 124
1
这道题:
Given string A representative a positive integer which has N digits, remove
any k digits of the number, the remaining digits are arranged according to
the original order to become a new positive integer.
Find the smallest integer after remove k digits.
N <= 240 and k <= N,
在网上看到一些答案, 说是每次删除剩下string里面第一个A[i] > A[i+1] 的数,重复K
次. 这对于每一步是局部最优解, 但我没想明白为什么这样做的是全局最优解.
这个怎么证明?
l****u
发帖数: 1764
2
利用sub optimal属性证明啊
删k个的最优解肯定是从删k-1的最优解基础上再删1位。否则如果还有更优的k-1解,那
么现在的最优就不是最优了
有点拗口,用数学表达式就更好理解
就是一个greedy问题
s****p
发帖数: 124
3
不对啊. 比如考虑19752这个数,现在要删2位, 我们可以先删7得到1952,然后再删9得到
152. 这个1952不是删一位的最优解,但最后我们也得到了152的最优解.
就是说,全局最优解不一定需要从前面的最优解得出来.
a****l
发帖数: 30
4
维护一个大小为k的递增栈, 应该就是最优解了吧
s****p
发帖数: 124
5
能够严格证明吗?
l****u
发帖数: 1764
6
不矛盾啊 最优解152 肯定可以从最优解1752的来 不存在比1752更优的解,比1752 差
的解不用理会。每次都找最优解就不会漏掉最终最优解

:不对啊. 比如考虑19752这个数,现在要删2位, 我们可以先删7得到1952,然后再删9得
到152. 这个1952不是删一位的最优解,但最后我们也得到了152的最优解.
:就是说,全局最优解不一定需要从前面的最优解得出来.

【在 s****p 的大作中提到】
: 能够严格证明吗?
w****e
发帖数: 586
7
可以,但懒得写详细。就说下大体证法。假设删k个数后的最优解是 N_k, 删k+1个数后
的最优解是 N_{k+1}. 你去比较 N_k 和 N_{k+1} 的首位不同的数字,可以证明N_k和N
_{k+1}唯一不同的就是这个数字(否则N_k和N_{k+1}中必有一个不是最优解,矛盾),
并且这个数字就是 N_k 里 “第一个A[i] > A[i+1] 的数”(否则N_{k+1}不是最优解
,矛盾)。然后数学归纳法从k=1开始推就行。这题要写清楚,有高中数学联赛省一等
奖水平。

【在 s****p 的大作中提到】
: 能够严格证明吗?
1 (共1页)
进入JobHunting版参与讨论
相关主题
问一个L的题目请问Ilikebeatles的Google面试问题集里
Amazon常见设计题——设计电话簿求解再问道题
这个最优解应该是怎样的?amazon phone interview
careercup一道amazon的面试题bit manipulation 小题
google 电面问一道编程题--java
问道面试题details 2nd smallest element in an array
请教一道数据结构的设计题Amazon两轮电面
请教一道题目贡献面试题
相关话题的讨论汇总
话题: 最优话题: digits话题: integer话题: delete话题: 证明