【数据结构与算法经典问题解析--java语言描述】_第20、21章_学习记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37770023/article/details/84708934

【数据结构与算法经典问题解析--java语言描述】_第20、21章_学习记录

第20章:

第21章:

1.1  本章主要介绍的是对于面试和考试有用的话题

1.2  位运算的使用

1.2.1 按位与操作

按位与(And)操作测试两个二进制数,如果两个数对应的位值均为1,则返回值中该位值为1;如果不同时为1,则返回0;

1.2.2 按位或操作

按位或(OR)操作测试两个二进制数,如果两个数对应的位值至少有一个为1,则返回值中该位值为1;当且仅当它们同时为0时,返回0;

1.2.3 按位异或操作

按位异或操作测试两个二进制数,如果两个数对应的位值不相同,则返回值中该位值为1;如果相同,则返回0;

1.2.4 按位左移操作

按位左移操作将操作数中的所有位向左移动,并用0填充空出的位。

1.2.5 按位右移操作

按位右移操作将操作数的所有位向右移动

1.2.6 按位补操作

按位补操作将一个二进制操作数的位取反。

1.3 其他编程问题

问题1: 设计一个算法,按照螺旋顺序依次输出矩阵中的元素。

问题2:基于反转算法的数组旋转问题。设计一个函数rotate(A[], d, n), 该函数将大小为n的数组旋转d 个元素。例如,数组1, 2, 3, 4, 5, 6, 7  在经过2个元素的旋转后变为3, 4, 5, 6, 7, 1, 2;

问题3:移动0到末尾。

问题4:将字符串中的空格移到末尾。

猜你喜欢

转载自blog.csdn.net/weixin_37770023/article/details/84708934