自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fiona20的博客

坚持就是胜利!

  • 博客(24)
  • 收藏
  • 关注

原创 LeetCode有效的字母异位词(242)Java

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram" 出: true示例 2:输入: s = "rat", t = "car" 输出: false法一:排序来解决;如果字母相同,只是位置不同,排出来是一样的顺序public boolean isAnagram(String ...

2020-04-28 22:22:41 162

原创 Java之HashMap VS TreeMap、HashSet VS TreeSet

HashMap、HashSet查找元素是 O(1)的时间复杂度(乱序),TreeMap、TreeSet是log2 N的时间复杂度(顺序)

2020-04-28 21:03:38 156

原创 Java之List、Set、Map的简单学习

一、Listjava.util接口 List<E>1.有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。2.与 set 不同,列表通常允许重复的元素3.方法:boolean add(Ee) 向列表的尾部添加...

2020-04-27 23:12:38 80

原创 Java双端队列的学习以及滑动窗口最大值的Deque实现

一、双端队列java.util接口 Deque<E>类型参数:E - 此 collection 中保存的元素类型所有已知实现类:ArrayDeque, LinkedBlockingDeque, LinkedList一个线性 collection,支持在两端插入和移除元素。名称 deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”...

2020-04-26 23:40:32 337

原创 LeetCode滑动窗口最大值(239)Java

给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] I made it by myself! That's exciting!做了可能两个小...

2020-04-26 22:28:30 92

原创 (二刷)LeetCode703.数据流中的第K大元素

设计一个找到数据流中第K大元素的类(class)。注意是排序后的第K大元素,不是第K个不同的元素。你的 KthLargest 类需要一个同时接收整数 k 和整数数组nums 的构造器,它包含数据流中的初始元素。每次调用 KthLargest.add,返回当前数据流中第K大的元素。public KthLargest(int k, int[] nums) { } ...

2020-04-25 22:58:20 110

原创 Java之Comparable、Comparator及其运用

java.lang接口 Comparable<T>类型参数:T - 可以与此对象进行比较的那些对象的类型此接口强行对实现它的每个类的对象进行整体排序——类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序。int compareTo(T...

2020-04-25 22:04:24 93

原创 对一组数的从小到大排和从大到小排的几种方法

随便给一组数据,然后用几种方法来对它进行排序,再取前面k个较小/大的数,设k=3从小到大排:int k = 3;int[] nums = new int[] { 4, 1, 6, 3, 7, 9, 2, 5 }; // 第一种,调库Arrays.sort(nums);for (int i = 0; i < k; i++) { System.out.print(n...

2020-04-25 12:58:52 5059

原创 Java之Collection和Collections

java.util接口 Collection<E>所有通用的 Collection 实现类(通常通过它的一个子接口间接实现 Collection)应该提供两个“标准”构造方法:一个是 void(无参数)构造方法,用于创建空 collection; 另一个是带有 Collection 类型单参数的构造方法,用于创建一个具有与其参数相同元素新的 collection。常用的:...

2020-04-25 10:57:27 205

原创 Java队列和优先队列

一、队列1、队列是一个接口,不能直接new!java.util接口 Queue<E>类型参数:E - collection 中所保存元素的类型。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用...

2020-04-25 09:52:47 244

原创 LeetCode用队列实现栈(225)Java

使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空LeetCode官方的方法之一:设一个队列,根据FIFO,将前面的元素移出来,又移进去从而实现栈。(个人决定这个方法很好,易懂简洁)import java.util.LinkedList;...

2020-04-23 20:45:25 103

原创 LeetCode用栈实现队列(232)Java

使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部pop() -- 从队列首部移除元素peek() -- 返回队列首部的元素empty() -- 返回队列是否为空。思路:设两个栈,一个栈用于input,一个栈用于output。input栈将元素pop()给output栈,这样就从先入后出的栈转为先入先出的队列。重点:pop() 和peek()。如果栈二...

2020-04-22 22:32:19 95

原创 LeetCode比较含退格的字符串(844)Java

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。输入:S = "ab#c", T = "ad#c" 输出:true 解释:S 和 T 都会变成 “ac”。输入:S = "ab##", T = "c#d#" 输出:true 解释:S 和 ...

2020-04-22 21:07:34 157

原创 LeetCode有效的括号(20)Java+HashMap的学习

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: "()" 输出: true输入: "()[]{}" 输出: true输入: "(]" 输出: false思路:用stack和HashMap来解...

2020-04-22 11:53:28 213

原创 LeetCode环形链表II(142)Java

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。输入:head = [3,2,0,-4], pos = 1 ;输出:tail connects to node index 1解释:链表中...

2020-04-21 20:53:03 51

原创 LeetCode环形链表(141)Java

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。输入:head = [1,2], pos = 0;输出:true;解释:链表中有一个环,其尾部连接到第一个节点。输入:head = [1], pos = -1;输出:false;解释:链表中没有环法一:用Ha...

2020-04-21 20:16:35 114

原创 LeetCode两两交换链表中的节点(24)Java

/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode swapPairs(Li...

2020-04-21 16:07:59 78

原创 Java矩形切割和特殊的数之和

【问题描述】小明有一些矩形的材料,他要从这些矩形材料中切割出一些正方形。当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。例如,对于一块两边分别为5和3的材料(记为5×3),小明会依次切出3×3、2×2、1×1、1×1共4个正方形。现在小明有一块矩形的材料,两边长分别是2019和324。请问小明最终会...

2020-04-20 17:43:21 274

原创 LeetCode反转链表206Java

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL迭代的做法:在遍历列表时,将当前节点 cur 的 next 指针改为指向前一个元素。由于节点没有引用其上一个节点 pre ,因此必须事先存储其前一个元素。在更改引用之前,还需要另一个指针来存储下一个节点 nex...

2020-04-18 11:00:29 58

原创 LeetCode打家劫舍(easy)Java

题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1] 输出: 4。解释: 偷窃 1 号房屋 (金额 = 1) ,...

2020-04-15 22:24:03 125

原创 LeetCode刷题——爬楼梯(多种方法求解)

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2 输出:2示例 2:输入:n = 7 输出:21class Solution { int[] dy; int mod = 1000000007; ...

2020-04-14 23:39:24 343

原创 递归思想的介绍和总结(Java实现)

我们先从经典的汉诺塔问题(hanoi)开始为了理清楚递归的调度机制,我们先解决盘子数为三的情况(s,m,d分别是第一跟柱子、第二根柱子、第三根柱子)...

2020-04-13 23:22:37 233

原创 控制逻辑(通过修饰符来控制变量的访问)

一、包如一个箱子,存放东西的空间,进行类的管理。如果想要将类存放到指定的包中,必须使用package语句:package 包名;注意事项:(1)package为Java保留的关键字,不能用别的符号进行替代。(2)package语句放在源文件的最前面,在此之前不允许有任何的语句(3)package只能有一个,因为一个类不可能同属于两个包,就好比不能将一个物体同时放进两个箱子中...

2020-04-06 22:55:37 495

原创 排序算法之直接插入排序、希尔排序

一、直接插入排序(一种查找比较操作和记录移动操作交替地进行的方法)1.思想:第一趟比较前两个数,然后把第二个数按大小插入到有序表中; 第二趟把第三个数据与前两个数从后向前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就完成了整个排序过程。直接插入排序是由两层嵌套循环组成的。外层循环标识并决定待比较的数值。内层循环为待比较数值确定其最终位置。直接插入排序是将待比...

2020-04-01 13:09:26 210

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除