【每天一道算法题】心情完全是-|sinx|状的正弦函数思密达 托腮。。。

这两天木有做题却存了几题,挑了一个看起来最有乐趣的~

烦躁的时候做个题能平静下来,是不是有点变态= =


这是一道微策略的笔试题:

输入一个数字组成的字符串,插入+,-或者空格,使得表达式结果为0

比如 123可以插入成 1+2-3
或者173956插入成 1 7+3 9-5 6

写出递归和非递归版本


思路:

看了题的第一感觉,感觉应该类似三叉树的搜索,用深度优先搜索可以找到某个使结果为0的表达式,但是复杂度达到了3 ^ ( n - 1 )。。。不科学

那么怎么简化或者说去除若干不可能的情形呢,如果前面的表达的绝对值大于后面连续的数字,就是比方前面的那个例子中:173+9 > 56 那么不论5和6之前插入什么都是不可能为0了,那么可以简化一部分搜索,但是本质上来说好像也没什么改进。。。

那好像可以用一下动规?虽然节省了重复的计算,但是还是要对于小规模的问题可能得到的各个值进行一番搜索,搜索的次数等于原先计算的次数,而且还浪费了空间。

怎么都想不出来。。。看来微策略是进不去了TAT,躺到床上再想一想。。。


据说12点以后睡是不要脸 3点以后睡是不要命 最近天天不要脸 偶尔不要命 faint

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值