前言
本次是位运算、数学计算、数组操作、链表操作的四道题应用。
近期整理的四道题
题目
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 输入一个链表,输出该链表中倒数第k个结点。
分析
- 第一道题,我们采用精妙的位运算,关于位运算的应用,包括乘除,在第二题用过,交换值等我们分析过,在这道题里,把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0。
- 我们采用递归求指数结果,然后在考虑奇偶,正负的问题。
- 遍历一遍数组,求出奇偶的个数,然后在遍历一遍把奇偶值填进去。
- 我们先使一个head往前走k-1步,然后第二个head和第一个一起走,当第一个走到链表的结尾时,第二个所在的地方就是倒数第k个。
实现
|
|