剑指offer笔试题总结
艳Yansky
一个带着好奇心,敢于去尝试的女孩!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
剑指Offer题解——二进制中1的个数
一、题目描述 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 二、分析 该题舍弃直接对输入数进行操作,因为考虑到负数移位存在符号位的问题,转而采取对数字1进行左移位操作,然后和输入数进行与操作,若与结果不为0,则该位上为1,计数器++,循环结束条件是1左移位之后等于0。 三、代码: int NumberOf1(int n) { int count =...原创 2019-08-09 19:40:20 · 368 阅读 · 0 评论 -
剑指Offer题解——调整数组顺序使奇数位于偶数前面
一、题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、分析 看到题目后首先就冒出一种想法:另开辟一个数组的话,查找出偶数依次放进去,然后查找出奇数再放进去,但这相当于拿空间换时间,不可取。 从题目得出的信息: 相对位置不变--->保持稳定性;奇数位...原创 2019-08-09 20:16:36 · 284 阅读 · 0 评论 -
剑指Offer题解——链表中倒数第k个结点
一、题目 描述输入一个链表,输出该链表中倒数第k个结点。 二、分析 思路: 定义快指针和慢指针。 快指针先走 k-1 步,到达第 k 个节点。 然后两指针同时齐步走,当快指针到达末尾时,慢指针在倒数第 k 个节点上。 三、代码: public ListNode FindKthToTail(ListNode head,int k) { if (head == null...原创 2019-08-09 20:26:03 · 316 阅读 · 0 评论 -
剑指Offer题解——反转链表
一、题目描述 输入一个链表,反转链表后,输出新链表的表头。 二、分析 public ListNode ReverseList(ListNode head) { if(head==null) return null; //head为当前节点,如果当前节点为空的话,那就什么也不做,直接返回null; Lis...原创 2019-08-09 20:38:16 · 295 阅读 · 0 评论 -
剑指Offer题解——合并两个排序的链表
一、题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ 二、分析 法一:递归(简单) ...原创 2019-08-09 20:47:06 · 287 阅读 · 0 评论
分享