BM CC150 Ch5 BM53
2016-09-23 11:56
239 查看
Predefined Methods
Same with BM190思路
先是这么想的,结果全错,应该先看思路的答案,再编程不迟!找了几个例子,觉得问题出在自右向左的首个01或者10的数值改变上。因为这最接近于next smallest 和next largest的值。
全1和全0是特例,于是还得用两个if句。但后来才发现,当
n == 0的时候可以直接+-1,而二进制全1的时候
写到这里才发现我又出错了,全1的时候要进位。因为array变长不方便,可以直接在string上改。
看了答案之后发现自己找的例子不够全面,还是逻辑没全面
如果二进制里面1和0都有,那么next integer应该是进位一个1保证比之前的数大,并把右边所有的1调换到最右边保证比那个数大的里面这个数最小。举例
1110 -> 10011并且
10110 -> 11011
相关文章推荐
- CH5-4 指针 函数 复杂指针
- Ch5 Reference Types
- 《Thinking in Java》ch5 tips
- 《Java数据结构与算法》笔记-CH5-链表-7实现链表的插入排序
- 《从零开始学Python网络爬虫》CH5
- TCP/IP 详解 卷1 ch5 RARP
- CPP_Primer_CH4_CH5
- 《C++ primer》——ch5 表达式:new和delete
- 《Java数据结构与算法》笔记-CH5-链表-8实现双链表,头部和尾部插入和删除
- 《机器学习Python实践》CH5 数据导入
- NHibernate Beginner ch5
- Assembly 筆記 - Ch5 程序
- ch5_1_1 线性变换的matlab源程序:.m
- 《Java数据结构与算法》笔记-CH5-链表-9实现带迭代器的链表
- 《深入浅出数据分析》CH5
- accp6.0 《使用javascript增强交互效果》学习笔记ch5 JavaScript和css交互
- ch5 条件,循环和其他语句
- CH5 Problem F: C语言习题5.13--趣味取小数
- [linux]vbird-ch5 首次登录与在线求助man page