刷题
刷题
奔跑的乌龟
生命在于静止
展开
-
leetcode203 移除链表元素递归实现
题目链接https://leetcode-cn.com/problems/remove-linked-list-elements/submissions//** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode...原创 2019-08-28 00:37:16 · 225 阅读 · 0 评论 -
leetcode2:两数相加
题目链接https://leetcode-cn.com/problems/add-two-numbers//** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * ...原创 2019-08-23 08:35:27 · 131 阅读 · 0 评论 -
反转链表递归实现
class Solution { public ListNode reverseList(ListNode head) { if(head==null||head.next==null){ return head; } ListNode node=reverseList(head.next); head.next....原创 2019-08-23 08:23:42 · 292 阅读 · 0 评论 -
用栈实现队列
class MyQueue { private Stack<Integer> a;// 输入栈 private Stack<Integer> b;// 输出栈 public MyQueue() { a=new Stack<>(); b=new Stack<>(); } /** P...原创 2019-08-22 23:12:04 · 118 阅读 · 0 评论 -
用队列实现栈
class MyStack {private Queue<Integer> a;// 输入队列 private Queue<Integer> b;// 输出队列 /** Initialize your data structure here. */ public MyStack() { a=new LinkedList<>...原创 2019-08-22 23:22:09 · 108 阅读 · 0 评论 -
leetcode:347. 前 K 个高频元素
import java.util.LinkedList;import java.util.List;import java.util.TreeMap;class Solution { private class Freq implements Comparable<Freq> { int num;// 数的值 int freq;// 数的次数 public ...原创 2019-08-21 22:14:06 · 121 阅读 · 0 评论 -
leetcode:929. 独特的电子邮件地址
题目地址:https://leetcode-cn.com/problems/unique-email-addresses/public int numUniqueEmails(String[] emails) { Set set = new HashSet<>(); for (String s : emails) { int i = s.indexOf('@'); ...原创 2019-08-21 22:07:14 · 277 阅读 · 0 评论 -
Leetcode905.(java实现5种解法) 按奇偶排序数组以及选择排序,冒泡排序,插入排序等等的实现。
题目解题思路一(选择排序)选择排序为什么叫选择排序呢?他的原理就是选择当前的元素依次和后面的元素进行比较,在第一次比较之后就会将我们想要的结果放在首位,然后接着从第二个元素开始依次和后面的元素进行比较。假如说有8个元素,那么试想一下我们到底应该比几轮?答案是7轮,为什么呢?因为我们第一轮比较完已经将我们要的一个数放在了数组的最左边,再一个就是第8轮也就是最后一个元素后面已经没有值了,那...原创 2019-04-05 20:36:14 · 219 阅读 · 0 评论 -
leetcode54. 螺旋矩阵(java实现)
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。class Solution { public List<Integer> spiralOrder(int[][] matrix) { /* */ ArrayList<Integer> list=...原创 2019-04-03 23:40:42 · 207 阅读 · 0 评论 -
leetcode448. 找到所有数组中消失的数字(Java实现)
解题思路我们新创建一个数组,来把这些重复数字中单个数字存进去,创建的这个新组的长度长度要比原数组的长度大一位。然后遍历新数组,下标从1开始,也就是从新数组的第二个元素开始,当遍历到新数组的值为0时,那么将这个下标添加到list当中,具体看图。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190403210935813.png传的值是从新数组的下...原创 2019-04-03 21:27:16 · 773 阅读 · 3 评论 -
leetcode240. 搜索二维矩阵 II(java实现,最简洁最易懂的代码)
解题思路(一)** 其实我觉得如果在项目中遇到这个题型的话,先创建一个String类的对象,然后将matrix传进去,接着调用String.contains(target)方法就行了。哈哈哈哈~~~~~~,好了,下面进入正题,笨方法就是把二维数组变成一维数组,然后再排序,接着用二分查找法找到目标元素。但是这个方法好像在leetcode上执行代码时候正确,但是提交的时间会出发超出时间时间限制...原创 2019-04-03 14:25:06 · 577 阅读 · 0 评论 -
leetcode169. 求众数(java实现的三种解法)
真的,写自从学了数据结构后我越来越觉得自己的脑子不够用了,前两种是我自己的解法,允许时间都达到9ms以上,虽然时间复杂度比较高,但是通俗易懂,最后一种是大神的解法,说实话,我现在其实也有点懵逼,日后遇到相似的题再慢慢例理会吧,废话不多说,直接看题看代码。解法一:双层嵌套法先对数组进行排序,然后定义一个计数变量count,默认为1;外层循环遍历整个数组的数,内层循环则是为了找相同的数,具体...原创 2019-04-03 12:04:47 · 2709 阅读 · 2 评论 -
leetcode66. 加一
题目class Solution { public int[] plusOne(int[] digits) { int curry=1; for(int i=digits.length-1;i>=0;i--){ int num=digits[i]+curry; digits[i]=num%10;...原创 2019-04-02 23:32:17 · 127 阅读 · 0 评论 -
leetcode724. 寻找数组的中心索引(java实现7ms)
题目给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释: 索引3 (...原创 2019-04-02 21:23:19 · 264 阅读 · 0 评论 -
leetcode747(Java实现2ms)
在一个给定的数组nums中,总是存在一个最大元素 。查找数组中的最大元素是否至少是数组中每个其他数字的两倍。如果是,则返回最大元素的索引,否则返回-1。示例 1:输入: nums = [3, 6, 1, 0]输出: 1解释: 6是最大的整数, 对于数组中的其他整数,6大于数组中其他元素的两倍。6的索引是1, 所以我们返回1. 示例 2:输入: nums = [1,...原创 2019-04-02 19:53:10 · 177 阅读 · 0 评论 -
leetcode2:两数相加
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&...原创 2019-04-02 18:58:57 · 100 阅读 · 0 评论 -
leetcode:234. 回文链表(java实现)
请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路先找到该链表的中间结点,采用快慢指针法,然后将中间结点之后的结点进行逆转,最后将前半部分和后半部分进行比较,如果有不相等的结点,就返回falseclas...原创 2019-04-02 09:15:05 · 305 阅读 · 0 评论 -
leetcode160. 相交链表(java实现)
编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:相交节点的值为 8 (注意,如...原创 2019-04-02 08:55:49 · 612 阅读 · 0 评论 -
leetcode328. 奇偶链表(Jav实现)
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2-&...原创 2019-04-02 08:32:48 · 202 阅读 · 0 评论 -
leecode206. 反转链表(java实现)
反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?思路我们可以采用空间换时间的思路,即创建一个虚拟结点,采用头插法接受原来链表的值,class Solution { public Lis...原创 2019-04-02 08:20:58 · 201 阅读 · 0 评论 -
牛客日常练习。
Java日常练习题每天10道选择题,1道编程题,记录易犯错的题型2018.10.8 day11.以下对继承的描述错误的是()A Java中的继承允许一个子类继承多个父类B父类更具有通用性,子类更具体CJava中的继承存在着传递性D当实例化子类时会递归调用父类中的构造方法解析:选A Java只能继承一个父类,但可以实现多个接口。2. this代表了()的对象引用,super表...原创 2019-03-31 22:56:06 · 1281 阅读 · 0 评论 -
106. 从中序与后序遍历序列构造二叉树
首先要知道一个结论,前序/后序+中序序列可以唯一确定一棵二叉树,所以自然而然可以用来建树。看一下中序和后序有什么特点,中序[9,3,15,20,7] ,后序[9,15,7,20,3];有如下特征:代码如下class Solution {public: TreeNode* buildTree(vector<int>& inorder, vector<in...原创 2019-09-12 21:12:34 · 144 阅读 · 0 评论 -
105. 从前序与中序遍历序列构造二叉树
首先要知道一个结论,前序/后序+中序序列可以唯一确定一棵二叉树,所以自然而然可以用来建树。看一下前序和中序有什么特点,前序1,2,4,7,3,5,6,8 ,中序4,7,2,1,5,3,8,6;有如下特征:代码如下class Solution {public: TreeNode* buildTree(vector<int>& preorder, vector&...原创 2019-09-12 18:51:18 · 279 阅读 · 0 评论 -
leetcode:买卖股票的最佳时机III
class Solution { public int maxProfit(int[] prices) { int len=prices.length; if(len<2){ return 0; } //每天有四种状态 int b1=0-prices[0];//第一次买后的剩下钱...原创 2019-08-13 12:22:43 · 165 阅读 · 0 评论 -
leetcode:485. 最大连续1的个数
class Solution { public int findMaxConsecutiveOnes(int[] nums) { int max=0; int count=0; for (int i : nums) { if(i==0) count=0; else count++; max=max>cou...原创 2019-04-26 22:03:42 · 124 阅读 · 0 评论 -
LeetCode:649. Dota2 参议院(java实现)
这道题我真的是遭了大坑了,一直死在一个问题上,原因就是我忘了字符串的值不能被直接修改!!!!修改后是返回一个新字符串题目`class Solution {public String predictPartyVictory(String senate) { //R和D 可以看作两个对象,这两个对象各自都有 自己被ban和ban别人的属性 int ...原创 2019-04-26 13:38:35 · 300 阅读 · 0 评论 -
leetcode:283 移动零
第一种是我自己的解法,感觉自己做的题还是少,把简单的问题给复杂化了。唉!使用快慢指针法:初始条件让慢指针从0开始,快指针从1开始。以后移动每次使得慢指针都指向0这个数字的位置,快指针对应的数字则不为0,满足这样的条件就进行交换。class Solution { public void moveZeroes(int[] nums) { /* if(nu...原创 2019-04-21 17:53:33 · 180 阅读 · 0 评论 -
leetcode:(53)最大子序和
(53)最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。第一种:暴力法import java.util.Scanner;public class Demo4 { // 1 ...原创 2019-04-01 16:20:01 · 97 阅读 · 0 评论 -
leetcde:(35)搜索插入位置
(35)搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0...原创 2019-04-01 11:37:12 · 94 阅读 · 0 评论 -
leetcode:27移除元素
(27)移除元素/*给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2...原创 2019-04-01 11:36:32 · 117 阅读 · 0 评论 -
leetcode:(26)删除数组中的重复项
(26)删除数组中的重复项import java.util.Arrays;/* * 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 num...原创 2019-04-01 11:35:56 · 98 阅读 · 0 评论 -
leetcode:(1)
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]public cl...原创 2019-04-01 11:35:19 · 98 阅读 · 0 评论 -
牛客易错题记录
1.下列选项中属于面向对象设计方法主要特征的是( )。正确答案: A 你的答案: C (错误)继承自顶向下模块化逐步求精解析:封装、继承、多态2.对于子类的构造函数说明,下列叙述中错误的是( )。正确答案: A 你的答案: C (错误)子类可以继承父类的构造函数。子类中调用父类构造函数不可以直接书写父类构造函数,而应该用super();。用new创建子类的对象时...原创 2018-12-22 20:40:08 · 684 阅读 · 0 评论 -
leetcode:509 .斐波那契数
`class Solution { public int fib(int N) { if(N==0){ return 0; } if(N==1||N==2){ return 1; } return fib(N-1)+fib(N-2); }}原创 2019-04-26 22:18:44 · 147 阅读 · 0 评论 -
leetcode:561. 数组拆分 I
class Solution { public int arrayPairSum(int[] nums) { /* 1 4 3 5 9 2 1 2 3 4 5 9 12 34 59 */ if(nums.length==2){ return Mat...原创 2019-04-26 22:35:40 · 261 阅读 · 0 评论 -
leetcode19. 删除链表的倒数第N个节点(最详细解法,执行时间1ms)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?这道题的是要倒数删除第n个结点并返回删除后的链表,有就是返回该链表...原创 2019-08-05 22:18:07 · 194 阅读 · 0 评论 -
leetcode:495. 提莫攻击(4ms)
题目描述解题思路:计数器;count jiange:当中毒持续时间小于攻击时间序列的间隔时:count+=nums[i+1]-nums[i];当中毒持续时间大于等于攻击时间序列的间隔时:count+=duration最后一轮,由于不在进行比较了,所以在前面的中毒时间的基础上自动加上durationclass Solution { public int findPo...原创 2019-04-25 18:07:45 · 174 阅读 · 0 评论 -
leetcode:290. 单词模式(java实现,两种详细解法,也比较好理解)
。原创 2019-04-24 23:38:03 · 352 阅读 · 0 评论 -
leetcode:205. 同构字符串(java实现)
问题分析:当给定的s和t为空时,直接返回falseif(s==null||t==null) { return false; } 由于给定的两个字符串s和t长度时一样的,所以我们就不用判断这个问题。我们可以直接创建s到t的映射。重点: 如下图Map<Character,Character> map=new Has...原创 2019-04-24 23:34:23 · 677 阅读 · 0 评论 -
leetcode142、141. 判断环形链表和求出环形链表的第一个入环的结点(java实现)
问题分析:首先判断链表是否有环:这道题就类似于现实生活中的赛跑问题,我们跑步的时候,有的人跑的慢,有的人或许跑的快。我们随机给两个人指定一个跑步路线,让两个人同时从起始点出发,如果在某一时刻,速度快的人追上了慢的人,那么就说明这个中间可能路线是一个环形的。!!! 注意,假设我们跑的慢的人的速度是v,跑的快的人的速度是2v,那么跑的快的人追上跑的慢的人的位置不一定是入环的结点!这得分情况。...原创 2019-04-28 20:04:19 · 363 阅读 · 0 评论