美国华人网FuninUSA_唐人社区_北美华人论坛:找礼品卡,找折扣,找报价,找工作,找内推,找项目,找股票

 找回密码
 立即注册
  • 李英爱新剧《师任堂》接档《蓝海传说》 26日首播
  • 48岁许晴与友人庆生 素颜出镜似18岁少女
  • 林允牙齿大变样 网友惊呼认不出
  • 姚晨三亚度假摘芒果 偶遇儿时同学趣事多
  • 赵丽颖有新恋情?邓超一不小心提到了她男朋友
  • 林心如谈“幸福”的定义:每天都在笑
  • 外媒称中国正在研发百亿亿次超级计算机
  • 邓超狂晒打篮球帅照 孙俪冷回10字笑翻众人
  • 48亿:北京打造全球最亮“慧眼”
  • 中国基建狂魔:11072米世界第一航道桥合龙
  • 中国建立了146亿美元的互联网投资基金
  • 历届美国总统经历的市场
  • 市场:特朗普就任的第一周
Logo1-800-PetMeds Free Shipping $49Take $10 Off Your First Order w/code: SAVE10 - 234 x 60
ASICS AmericaPagoda Piercing Banner 234x60Sierra Trading Post
搜索
查看: 3022|回复: 8

内推面经 -求助一道算法题, 在限定三个operation下使一个数变成1的最小- 唐人社区|北 ...

[复制链接]

19

主题

29

帖子

72

积分

新手上路

Rank: 1

积分
72
QQ
发表于 2016-10-2 22:13:27 | 显示全部楼层 |阅读模式
分享到:
{$content}

唐人社区-北美华人论坛-内推面经版-求助一道算法题, 在限定三个operation下使一个数变成1的最小


  JobHunting
标 题: 求助一道算法题, 在限定三个operation下使一个数变成1的最小操作数


The description of the problem is : Write a function which takes a positive
integer as a string and returns the minimum number of operations needed to
transform the number to 1. The number is up to 309 digits long, so there won
't too many character than you can express in that many digits. The
transform process is limited to three operations: 1. Add 1 2. Subtract 1 3.
Divide the number by 2 (only even number allow here)
我的想法是用dfstraverse所有可能, 用memorization来剪枝,但是最后还是超时了,
求教如何进一步优化或者一种方法处理。 因为输入时string所以处理起来很麻烦
--

回复 百度谷歌雅虎搜狗搜搜有道360奇虎

举报

6

主题

227

帖子

234

积分

中级会员

Rank: 3Rank: 3

积分
234
QQ
发表于 2016-10-2 22:45:27 | 显示全部楼层
JobHunting
标  题: Re: 求助一道算法题, 在限定三个operation下使一个数变成1的最小


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

【 在 dashenswen (dashenswen) 的大作中提到: 】
: The description of the problem is : Write a function which takes a
positive
: integer as a string and returns the minimum number of operations needed to
: transform the number to 1. The number is up to 309 digits long, so there
won
: 't too many character than you can express in that many digits. The
: transform process is limited to three operations: 1. Add 1 2. Subtract 1 3
.
: Divide the number by 2 (only even number allow here)
: 我的想法是用dfstraverse所有可能, 用memorization来剪枝,但是最后还是超时了,
: 求教如何进一步优化或者一种方法处理。 因为输入时string所以处理起来很麻烦


--
Look. If you had one shot or one opportunity to seize everything you ever wanted in one moment.
Would you capture it or just let it slip?

21

主题

82

帖子

134

积分

注册会员

Rank: 2

积分
134
QQ
发表于 2016-10-2 23:05:27 | 显示全部楼层
JobHunting
标  题: Re: Re: 求助一道算法题, 在限定三个operation下使一个数变成1


class Solution {
public:
    int integerReplacement(int n) {
       if (n==0 || n==1) return 0;
       if (n==INT_MAX) return 32;
       if ((n&1)==0) return 1+integerReplacement(n>>1); //even
       else {
           return 1+min(integerReplacement(n-1), integerReplacement(n+1));
       }
    }
};

【 在 coldknight (冷骑士) 的大作中提到: 】
: https://leetcode.com/problems/integer-replacement/
: positive
: won
: .



--

15

主题

67

帖子

99

积分

注册会员

Rank: 2

积分
99
QQ
发表于 2016-10-2 23:07:36 | 显示全部楼层
JobHunting
标  题: Re: Re: Re: 求助一道算法题, 在限定三个operation下使一个数

19

主题

92

帖子

131

积分

注册会员

Rank: 2

积分
131
QQ
发表于 2016-10-3 01:03:13 | 显示全部楼层
JobHunting
标  题: Re: Re: 求助一道算法题, 在限定三个operation下使一个数变成


你这个同时尝试两个possibility
可能会TLE
leetcode讨论里面给了个解法,只把n==3当做例外
但我不知道面试时候遇到怎么能短时间内观察出这个。。。

【 在 magician (爱情魔法师) 的大作中提到: 】
: class Solution {
: public:
:     int integerReplacement(int n) {
:        if (n==0 || n==1) return 0;
:        if (n==INT_MAX) return 32;
:        if ((n&1)==0) return 1+integerReplacement(n>>1); //even
:        else {
:            return 1+min(integerReplacement(n-1), integerReplacement(n+1));
:        }
:     }
: ...................



--

2

主题

235

帖子

212

积分

中级会员

Rank: 3Rank: 3

积分
212
QQ
发表于 2016-10-3 02:43:19 | 显示全部楼层
JobHunting
标  题: 求助一道算法题, 在限定三个operation下使一个数变成1的最小操作数


The description of the problem is : Write a function which takes a positive
integer as a string and returns the minimum number of operations needed to
transform the number to 1. The number is up to 309 digits long, so there won
't too many character than you can express in that many digits. The
transform process is limited to three operations: 1. Add 1 2. Subtract 1 3.
Divide the number by 2 (only even number allow here)
我的想法是用dfstraverse所有可能, 用memorization来剪枝,但是最后还是超时了,
求教如何进一步优化或者一种方法处理。 因为输入时string所以处理起来很麻烦
--

14

主题

1124

帖子

2216

积分

金牌会员

Rank: 6Rank: 6

积分
2216
QQ
发表于 2016-10-25 12:20:44 | 显示全部楼层
有空一起交流一下

23

主题

1115

帖子

2183

积分

金牌会员

Rank: 6Rank: 6

积分
2183
QQ
发表于 2016-10-29 17:34:31 | 显示全部楼层
楼下的接上

24

主题

1107

帖子

2179

积分

金牌会员

Rank: 6Rank: 6

积分
2179
QQ
发表于 2016-10-29 17:34:31 | 显示全部楼层
有空一起交流一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美国华人网|唐人社区|什么值得买FunInUSA.net发布的内推面经 -求助一道算法题, 在限定三个operation下使一个数变成1的最小- 唐人社区|北 ...帖子由网友提供或转载于网络,若发布的内推面经 -求助一道算法题, 在限定三个operation下使一个数变成1的最小- 唐人社区|北 ...侵犯了您的权益,请联系我们.
Sasa.com

Copyright ©2011 FunInUSA.com All Right Reserved.  Powered by Discuz! X3.0 小黑屋

本站信息均由会员发表,不代表美国华人网FunInUSA立场,如侵犯了您的权利请发帖投诉  技术支持: 美国华人网FunInUSA

安全联盟认证 安全联盟认证

快速回复 返回顶部 返回列表