一个n位的10进制正整数,使得删除k位(k<n)后剩余数字组成的正整数最小,用贪心算法实现该算法, 问该问题的贪心策略是什么?也就是每次要删除哪个数字?
A: 每次从整数中删去数字最大者
B: 每次从整数中找包含最高位的从左至右的一个最长的非递减序列,将该序列的最后一位删除
C: 每次删除该整数的最高位数字
D: 贪心算法不能有效解决该问题
A: 每次从整数中删去数字最大者
B: 每次从整数中找包含最高位的从左至右的一个最长的非递减序列,将该序列的最后一位删除
C: 每次删除该整数的最高位数字
D: 贪心算法不能有效解决该问题
举一反三
- 一个n位的10进制正整数,使得删除k位(k<n)后剩余数字组成的正整数最小,用贪心算法实现该算法, 问该问题的贪心策略是什么?也就是每次要删除哪个数字? A: 每次从整数中删去数字最大者 B: 每次从整数中找包含最高位的从左至右的一个最长的非递减序列,将该序列的最后一位删除 C: 每次删除该整数的最高位数字 D: 贪心算法不能有效解决该问题
- 给定n 位正整数a,去掉其中任意k(k≤n)个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n位正整数a 和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。
- 下列递归函数DigitSum(n),处理一个非负整数,返回组成该数的所有数字之和...itSum( );//将每次取模相加 }
- 描述:输入一个任意长度的非负整数,求出其最高位数字。如,输入237,则最高位数字为2。 输入:输入一个非负整数。 输出:输出最高位数字 输入示例:4756 输出示例:4
- 教材中的例题:多机调度问题,是用贪心算法求最优解的一个例子,贪心策略是每次从剩余任务中选择一个花费时间最长的任务,安排在占用时间最少的机器上。