摘要: 1、链表节点类 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } 2、链表合并类 public class ListMerge { public ListNod 阅读全文
posted @ 2017-10-01 22:33 AI菌 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 一、题目 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 二、思路 注:链表1和链表2是两个递增排序的链表,合并这两个链表得到升序链表为链表3. 首先分析合并两个链表的过程。我们的分析从合并两个链表的头结点开始。链表1的头结点的值小于链表2的头结点的值, 阅读全文
posted @ 2017-10-01 22:01 AI菌 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1、链表节点类 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } 2、链表逆序类 public class ReverseList { public ListN 阅读全文
posted @ 2017-10-01 20:47 AI菌 阅读(804) 评论(0) 推荐(0) 编辑
摘要: 一、题目 输入一个链表,反转链表后,输出链表的所有元素。 二、思路 详细分析见代码注释 三、代码 public class Solution { public ListNode ReverseList(ListNode head) { if(head==null) return null; //he 阅读全文
posted @ 2017-10-01 18:01 AI菌 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 一、题目 输入一个链表,输出该链表中倒数第k个结点。 二、思路 两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点。然后两个指针同时往后移动,当第一个结点到达末尾的时候,第二个结点所在位置就是倒数第k个节点了。 三、代码 /* public class 阅读全文
posted @ 2017-10-01 14:23 AI菌 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 一、题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 二、思路 此题可以用类似冒泡排序的算法来解答。遍历数组,当相邻两个数,前面的数是偶数,后面的数是奇数时,交换两个数。 阅读全文
posted @ 2017-10-01 13:22 AI菌 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 一、题目 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 二、思路 1、传统方法计算,时间复杂度O(n) 2、递归方式计算,时间复杂度O(logn) 当exponent为偶数时,例如求base^10,则result= base^5 * 阅读全文
posted @ 2017-10-01 02:16 AI菌 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 一、题目 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 二、思路 方法一: 用1(1自身左移运算,其实后来就不是1了)和n的每位进行位与,来判断1的个数 方法二: 把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次 阅读全文
posted @ 2017-10-01 00:46 AI菌 阅读(248) 评论(0) 推荐(0) 编辑