leetcode
SihgYu
Miracles sometimes occur, but one has to work terribly for them.
展开
-
只出现一次的数字【leetcode】
问题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例2: 输入:...原创 2019-03-09 15:41:17 · 677 阅读 · 0 评论 -
【剑指offer】反转链表
题目描述:输入一个链表,反转链表后,输出新链表的表头。思路分析:当前节点为head,反转链表应该将当前节点的下个节点next指向当前节点,而当前节点的next则为pre,但是如果直接将下个节点的next指针指向当前节点则会使后面的链表断掉,所以应该记录当前节点的下一个节点。依次反复这个操作。。。AC代码:/*public class ListNode { int v...原创 2019-08-06 17:14:44 · 107 阅读 · 0 评论 -
【剑指offer】跳台阶
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。题目解析:当只有一节台阶的时候由于每次只能跳一级或者两级,则只有一种方式,即f(1) = 1;如果有两个台阶则有f(2) = 2;如果有n个台阶,第一次跳了1节,则剩下的方式为f(n-1),如果第一次跳了2节,则剩下的为f(n-2),所以f()=f(n-2...原创 2019-08-01 15:55:04 · 86 阅读 · 0 评论 -
【剑指offer】旋转数组的最小数字
题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。解题思路:采用二分法解答这个问题,mid = low + (high - low)/2需要考...原创 2019-08-01 14:59:27 · 95 阅读 · 0 评论 -
【剑指offer】重建二叉树
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:#前序序列:1 2 3 4 5 6 7#中序序列:3 2 4 1 6 5 7#此算法过程:#pre : 1 2 3 4 5 6 7...原创 2019-08-01 14:39:05 · 97 阅读 · 0 评论 -
【剑指offer】用两个栈实现队列
题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路:整体思路是元素先依次进入栈1,当栈2是空的时候就把栈1中的元素依次push到栈2中,这样在取栈2的元素就相当于一个先入先出的队列,栈2不为空的时候直接在栈2中取,如果取完了这时栈1中还有元素就继续push到栈2中,如此反复。。。AC代码:import java.util.S...原创 2019-07-30 10:41:31 · 101 阅读 · 0 评论 -
【剑指offer】从尾到头打印链表
题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路:两种思路,第一个是通过栈的特点,先入后出,将链表中的数据插入到栈中,出栈之后即为逆序,第二个思路是通过递归,其实也是借助于栈的实现。AC代码:/*** public class ListNode {* int val;* ListNode next = ...原创 2019-07-30 10:12:40 · 87 阅读 · 0 评论 -
合并两个有序数列【leetcode】 --java实现
题目描述:给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。说明:初始化nums1和nums2的元素数量分别为m和n。 你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存nums2中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3...原创 2019-03-10 16:36:29 · 1323 阅读 · 0 评论 -
搜索二维矩阵Ⅱ [leetcode] --java实现
题目描述:编写一个高效的算法来搜索mxn矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13...原创 2019-03-10 14:53:22 · 705 阅读 · 0 评论 -
求众数[leetcode] --修改:添加摩尔投票方式实现
问题描述: 给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例1: 输入: [3,2,3] 输出: 3 示例2: 输入: [2,2,1,1,1,2,2] 输...原创 2019-03-09 15:58:24 · 793 阅读 · 0 评论 -
【剑指offer】二进制中1的个数
题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。解题思路:看到这题的第一反应其实是直接调用java的方法将整数变成二进制字符串,即调用Integer.toBinaryString(),然后调用toCharArray(),这样就讲一个整数变成一个二进制数组,通过遍历二进制数组完成计数。但是这种题一般应该是通过位运算来解决的,并且速度上应该更快,考察的知识点应该也...原创 2019-08-06 17:31:56 · 129 阅读 · 0 评论