java
程序媛格格酱
这个作者很懒,什么都没留下…
展开
-
project 秒杀(一)
一、Spring Boot环境搭建Spring MCV 需要大量的配置 理念0配置con调service,service调dao原创 2021-06-02 15:02:17 · 120 阅读 · 0 评论 -
内部类匿名内部类总结
https://blog.csdn.net/gafeng123456/article/details/50679642局部内部类https://blog.csdn.net/qq_34944851/article/details/51449420?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-4&spm=1001.2101.3001.4242原创 2021-05-29 09:59:05 · 101 阅读 · 0 评论 -
单例模式实现方式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一式。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。懒汉式声明当前类的对象没有被初始化私有化类的构造器提供类的公共的静态方法,返回该对象懒汉式(一)public class Singleton1 {//不初始化单例 private static Singleton1 singleton = null; private Singleto原创 2021-04-25 20:43:13 · 77 阅读 · 0 评论 -
HashMap解读
这里写目录标题HashMap的特点:HashMap实现原理:jdk7.0HashMap的put方法HashMap的扩容HashMap实现原理:jdk8.0HashMap添加元素HashMap的扩容面试问题HashMap的特点:允许使用null键和null值,与 HashSet一样,不保证映射的顺序。所有的key构成的集合是set:无序的、不可重复的。所以,key所在的类要重写equals()和 hashCode()所有的value构成的集合是Collection:无序的、可以重复的。所以,val.原创 2021-04-15 11:05:51 · 238 阅读 · 0 评论 -
leetcode哈希表1、217、594、128
这里写目录标题leeetcode1两数之和leetcode217 存在重复元素leetcode594 (重点看)最长和谐子序列leetcode128最长连续子序列leeetcode1两数之和题目:代码:class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer,Integer> map=new HashMap<Integer,Integer>();原创 2021-04-08 09:57:22 · 276 阅读 · 0 评论 -
leetcode328奇偶链表
题目思路代码`class Solution { public ListNode oddEvenList(ListNode head) { if(head==null) return head;//容易被忽略 ListNode odd=head; ListNode evenHead=odd.next;//偶数链表的头结点 ListNode even=evenHead;//偶数链表的头结点 while(even!原创 2021-03-27 13:50:45 · 95 阅读 · 0 评论 -
leetcode725分隔链表
**题目:代码:**class Solution { public ListNode[] splitListToParts(ListNode root, int k) { //求出链表的长度 //if(root==null) return root; ListNode cur=root; int l=0; while(cur!=null){ l++; cur=cur.原创 2021-03-27 13:46:49 · 78 阅读 · 0 评论 -
leetcode 234回文链表
题目思路代码法一:class Solution { public boolean isPalindrome(ListNode head) { //方法一将链表转换数组,使用双指针判断是否是回文链表 List<Integer> list=new ArrayList<Integer>(); ListNode cur=head; while(cur!=null){ list.add(cur.v原创 2021-03-27 13:41:23 · 132 阅读 · 0 评论 -
leetcode445链表求和
题目:思路:可以看看官方题解代码:class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { Stack<Integer> stack1=buildstack(l1); Stack<Integer> stack2=buildstack(l2); int carry=0; ListNode dummy=new List原创 2021-03-27 13:29:30 · 66 阅读 · 0 评论 -
leetcode24两两交换链表中头节点
题目:思路:代码:迭代: //递归 public ListNode swapPairs(ListNode head) { if(head==null||head.next==null) return head; //假设链表是 1->2->3->4 //这句就先保存节点2 ListNode temp=head.next; //继续递归,处理节点3->4 //当递归结束返回后,就变成了4->3原创 2021-03-27 13:23:10 · 84 阅读 · 0 评论 -
leetcode19删除链表倒数第n个节点
题目:思路:代码方法一:l+1-n求出链表长度class Solution { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode dummy=new ListNode(0,head);//取第0个节点 //倒数第n个节点是正数第l-n个节点 现在有l+1-n个节点 //我们要找到删除的上一个节点 l-n+1 -1 ListNode cur=dum原创 2021-03-27 13:17:39 · 91 阅读 · 0 评论 -
leetcode83删除排序链表中重复元素
题目:思路:代码:法一:直接法 public ListNode deleteDuplicates(ListNode head) { ListNode cur=head; while(cur!=null&&cur.next!=null){ if(cur.next.val==cur.val){ cur.next=cur.next.next; }else{原创 2021-03-27 12:50:40 · 123 阅读 · 0 评论 -
leetcode21合并两个有序链表
题目:思路:递归:如果 l1 或者 l2 一开始就是空链表 ,那么没有任何操作需要合并,所以我们只需要返回非空链表。否则,我们要判断 l1 和 l2 哪一个链表的头节点的值更小,然后递归地决定下一个添加到结果里的节点。如果两个链表有一个为空,递归结束。代码 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //递归方法 if(l1==null) return l2; if(l2=原创 2021-03-27 12:32:30 · 119 阅读 · 0 评论 -
leetcode206反转链表
递归方法:双指针方法:原创 2021-03-27 12:16:22 · 99 阅读 · 0 评论 -
leetcode160相交链表
消除长度差代码public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { ListNode l1=headA; ListNode l2=headB; while(l1!=l2){ l1=(l1==null)?headB:l1.next; l2=(l2==null)?headA原创 2021-03-27 11:54:37 · 105 阅读 · 0 评论 -
leetcode501二叉搜索树的众数
题目思路list列表清空,并将base添加到列表代码class Solution { List<Integer> list=new ArrayList(); int base,count=0,maxcount=0; //base为当前数的值 //count当前数字重复出现的次数 //maxcount 出现最多的数字的次数 //answer 记录众数 public int[] findMode(原创 2021-03-24 14:06:32 · 89 阅读 · 0 评论 -
leetcode530二叉搜索树的最小绝对差
题目:思路:二叉搜索树,二叉搜索树是有序的。遇到在二叉搜索树上求什么最值啊,差值的,把它想成在一个有序数组上求最值,求差值代码:法一://将二叉树转换成有序列表 //从头开始遍历列表class Solution { public int getMinimumDifference(TreeNode root) { List<Integer> list =new ArrayList(); inOrder(root,list);原创 2021-03-24 13:15:27 · 98 阅读 · 0 评论 -
leetcode 653 两数之和 输入BST
题目:思路:法一:使用HashSet代码class Solution {//使用Hashset //如果存在两个元素之和为k=x+y,一个元素为x,只需判断是否含有y//set中放节点的值 如果k-x在set中 返回true//y不在set中,将该节点加入set,继续遍历他的左右子树 public boolean findTarget(TreeNode root, int k) { Set<Integer> set=new HashSet<Int原创 2021-03-24 11:06:06 · 87 阅读 · 0 评论 -
leetcode108. 将有序数组转换为二叉搜索树
题目:思路:1、二叉搜索树的性质2、高度平衡:左右子树的高度差的绝对值<=13、二叉搜索树的中序遍历是递增的有序序列4、如何构造二叉搜索树选取根节点构造该节点的左子树构造该节点的右子树5、要求构造高度平衡的二叉树 所以选择数组的中间节点作为根节点来保持平衡性代码:class Solution { public TreeNode sortedArrayToBST(int[] nums) { return dfs(nums,0,nums.length-1原创 2021-03-24 09:41:02 · 90 阅读 · 0 评论 -
leetcode236二叉树的最近公共祖先(后序遍历)
描述:思路7和8的最近的公共祖先为3若 root 是 p,q 的 最近公共祖先 ,则只可能为以下情况之一:p和 q 在 root 的子树中,且分列 root 的 异侧(即分别在左、右子树中);p = root ,且 q 在 root 的左或右子树中;q=root , p 在 root 的左或右子树中;考虑通过递归对二叉树进行后序遍历,**当遇到节点 p 或 q 时返回。从底至顶回溯,**当节点 p,q 在节点 root 的异侧时,节点 root 即为最近公共祖先,则向上返回 roo原创 2021-03-23 11:23:31 · 234 阅读 · 1 评论 -
leetcode 235二叉搜索树的最近公共祖先
题目:思路:我们从根节点开始遍历;如果当前节点的值大于 p和 q的值,说明 p 和 q 应该在当前节点的左子树,因此将当前节点移动到它的左子节点;如果当前节点的值小于 p 和 q 的值,说明 p 和 q 应该在当前节点的右子树,因此将当前节点移动到它的右子节点;如果当前节点的值不满足上述两条要求,那么说明当前节点就是「分岔点」。此时,p和 qq要么在当前节点的不同的子树中(p和q一小一大),要么其中一个就是当前节点。法一:非递归:class Solution { public T原创 2021-03-23 10:37:34 · 77 阅读 · 0 评论