自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 同源策略以及跨域问题

同源策略以及跨域问题同源策略为什么要有同源策略?跨域问题同源策略(1)什么是同源?源就是协议、域名和端口,同源就是协议、域名和端口都相等。(2)什么是同源策略?同源策略是浏览器中的一个安全机制,不同源不可以读写对方资源。(3)不会受同源策略限制的有什么?1)页面中的链接;2)重定向3)表单提交为什么要有同源策略?如果没有同源策略,浏览器里的cookie将会被不同域的DOM操作跨域问题...

2021-04-29 17:50:49 95

原创 JAVA基础知识总结

这里写自定义目录标题基础概念基础概念java语言优点:1)面向对象,继承、多态、封装;2)可靠性;3)平台无关性;4)安全性;5)支持多线程;7)支持网络编程;8)编译与解释并存。什么是字节码?采用字节码的好处是什么?在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而

2021-03-10 23:10:34 117

原创 回溯算法套路、去重总结

回溯算法模板 public void func(int[] nums,List<Integer> l,int start){ //判断条件、收集数据 两种情况(1、收集的数据是不限制大小;2、需要全部数据都进去) if(l.size() == nums.length) { ll.add(new ArrayList<>(l)); } //这里i的开头如果从0开始是涉及到排列问题,如果是

2021-01-28 10:53:27 575

原创 数据库面试重要知识点总结

事务的四大基本要素(ACID)数据库事务正确执行的四个基本要素:原子性(Atomicity): 事务开始后,要么全部完成,要么全部不完成,不能停留在某个中间环节。如果事务出错,那么就回滚(Rollback)到事务开始前的状态。一致性(Consistency): 事务开始前和结束后,数据库的完整性约束不能被破坏。比如A向B转钱,不能出现A扣了,B却没收到。隔离性(Isolation): 同一时间,只允许一个事务请求同一数据,不同的事务直接不能有任何干扰。比如A向银行卡存钱的过程中,B不能向同张银行卡

2021-01-08 22:30:45 540 1

原创 力扣Java版个人代码分享-树篇(199. 二叉树的右视图)

199. 二叉树的右视图给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。例子给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].代码class Solution { List<String> l =

2020-12-18 11:52:48 73

原创 力扣Java版个人代码分享-DFS篇(98. 验证二叉搜索树)

98. 验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。例子示例 1:输入:2/ \1 3输出: true示例 2:输入:5/ \1 4/ \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。代码

2020-12-18 11:48:55 68

原创 力扣Java版个人代码分享-树篇(199. 二叉树的右视图)

199. 二叉树的右视图给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。例子输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释: 1 <--- / \2 3 <--- \ \ 5 4 <---代码 public List<Integer> rightSideView(TreeNode root

2020-09-12 23:08:12 131

原创 力扣Java版个人代码分享-栈篇(20. 有效的括号)

20. 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。例子示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(]"输出: false示例 4:输入: "([)]"输出: false示例 5:输入: "{[]}"输出: true

2020-09-12 19:53:23 126

原创 力扣Java版个人代码分享-数组篇(215. 数组中的第K个最大元素)

215. 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。例子示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4代码 public int findKthLargest(int[] nums, int k) { quickFind(nums,0,nums.len

2020-09-12 19:44:36 136

原创 力扣Java版个人代码分享-链表篇(876. 链表的中间结点)

876. 链表的中间结点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。例子示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.n

2020-09-11 11:17:23 97

原创 力扣Java版个人代码分享-树篇(剑指 Offer 27. 二叉树的镜像)

剑指 Offer 27. 二叉树的镜像请完成一个函数,输入一个二叉树,该函数输出它的镜像。例如输入: 4/ 2 7/ \ / 1 3 6 9镜像输出: 4/ 7 2/ \ / 9 6 3 1例子示例 1:输入:root = [4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1] 限制:0 <= 节点个数 <= 1000菜鸡代码。。 public TreeNode mirro

2020-09-10 23:19:55 127 1

原创 力扣Java版个人代码分享-树篇( 111. 二叉树的最小深度)

111. 二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。例子给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.代码 public int minDepth(TreeNode root) { if(root == null) return 0;

2020-09-10 21:42:32 114

原创 力扣Java版个人代码分享-树篇( 107. 二叉树的层次遍历 II)

107. 二叉树的层次遍历 II给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例子例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]代码 public List<List<Integer>> levelOrderBo

2020-09-10 21:01:44 896 2

原创 力扣Java版个人代码分享-树篇( 112. 路径总和)

112. 路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。例子例子1:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 2 1返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2

2020-09-08 19:10:44 177

原创 力扣Java版个人代码分享-树篇( 二叉树的前序遍历、中序遍历、后序遍历)

94. 二叉树的前序遍历、中序遍历、后序遍历给定一个二叉树,返回它的前序遍历、中序遍历、后序遍历。例子例子1:输入: [1,null,2,3] 1 \ 2 / 3前序:[1,2,3]中序:[1,3,2]后序:[3,2,1]代码//前序遍历 List<Integer> l = new LinkedList<>(); public List<Integer> preorderTraversal(Tree

2020-09-08 00:26:33 86

原创 力扣Java版个人代码分享-树篇( 100. 相同的树)

101. 对称二叉树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。例子例子1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输入: 1 1 / \ 2 2 [1,2], [1,null,2]输出: false

2020-09-04 21:44:00 142

原创 力扣Java版个人代码分享-树篇( 101. 对称二叉树)

101. 对称二叉树给定一个二叉树,检查它是否是镜像对称的。例子例子1:二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3代码 public boolean isSymmetric(TreeNode root){ if(root ==

2020-09-04 19:50:21 115

原创 力扣Java版个人代码分享-树篇( 350. 环形链表)

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

2020-09-03 15:11:57 98

原创 力扣Java版个人代码分享-树篇(104. 二叉树的最大深度)

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

2020-09-01 15:43:18 164

原创 力扣Java版个人代码分享-哈希篇(350. 两个数组的交集 II)

349. 两个数组的交集 II给定两个数组,编写一个函数来计算它们的交集。例子例子1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]例子2:输入:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]代码 public int[] intersect(int[] nums1, int[] nums2) { LinkedList<Integer> l1 = new Linke

2020-08-31 20:02:53 101

原创 力扣Java版个人代码分享-哈希篇(349. 两个数组的交集)

349. 两个数组的交集给定两个数组,编写一个函数来计算它们的交集。例子例子1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]例子2:输入:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]代码 public int[] intersection(int[] nums1, int[] nums2) { Map<Integer,Integer> map = new HashM

2020-08-31 16:32:33 122

原创 力扣Java版个人代码分享-栈篇(剑指 Offer 09. 用两个栈实现队列)

206. 字符串解码用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )例子例子1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]例子2:输入:[“CQueue”,“deleteHead”,“app

2020-08-29 23:31:33 89

原创 力扣Java版个人代码分享-栈篇(字符串解码)

206. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。来源:力扣(LeetCode)链接:https://leetcode-cn.co

2020-08-29 11:17:21 204

原创 力扣Java版个人代码分享-链表篇(反转链表)

206. 反转链表反转一个单链表。例子输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL代码 public ListNode reverseList(ListNode head) { if(head == null) return head; if(head.next == null) return head;

2020-08-28 09:55:38 167

原创 力扣Java版个人代码分享-链表篇(删除排序链表中的重复元素||)

86. 分隔链表给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。例子输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5代码 public ListNode partition(ListNode head, int x) { ListNode temp = ne

2020-08-28 09:27:25 103

原创 力扣Java版个人代码分享-链表篇(删除排序链表中的重复元素||)

83. 删除排序链表中的重复元素II给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。例子例子1:输入: 1->2->3->3->4->4->5输出: 1->2->5例子2:输入: 1->1->1->2->3输出: 2->3代码 public static ListNode deleteDuplicates(ListNode head) { Lis

2020-08-27 16:32:03 105

原创 力扣Java版个人代码分享-链表篇(删除排序链表中的重复元素)

83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。例子例子1:输入: 1->1->2输出: 1->2例子2:输入: 1->1->2->3->3输出: 1->2->3代码 public ListNode deleteDuplicates(ListNode head) { ListNode temp = head; if(temp == null){

2020-08-27 15:18:55 102

原创 力扣Java版个人代码分享-链表篇(两两交换链表中的节点)

61. 旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。例子例一:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL例二:输入: 0->1->

2020-08-27 15:02:54 91

原创 JavaSe重要知识点总结

标识符的命名规则注:可以用中文Java中的名称命令规范数据类型基本数据类型:整型: byte、short、int、long浮点型:float、double字符型:char布尔型:boolean引用数据类型:类(class)接口(interface)数组(array)整数数据类型以及表示范围:注意:声明long型变量,必须以"l“或"L"结尾。通过定义整型变量是用int型注意:声明float型变量,必须要以"f"或”F“结尾。通常用浮点型变量时,用double。字符类型: c

2020-08-26 23:23:49 704

原创 乐扣Java版个人代码分享-链表篇(两两交换链表中的节点)

24. 两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。例子给定 1->2->3->4, 你应该返回 2->1->4->3.代码public ListNode swapPairs(ListNode head) {ListNode temp = new ListNode();ListNode node = new ListNode();ListNode temp1

2020-08-26 15:07:39 188

原创 乐扣Java版个人代码分享-链表篇(删除链表的倒数第N个节点)

19删除链表的倒数第N个节点题目要求:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。例子给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.代码 public static ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode n1 = head; ListNode n2

2020-08-26 09:46:34 168

原创 乐扣Java版个人代码分享-链表篇(两数相加)

@TOC2.两数相加题目要求:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。例子输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807代码 public static L

2020-08-26 09:01:53 398

原创 力扣Java版个人代码分享-链表篇(合并两个有序链表)

乐扣Java版个人代码分享-链表篇21.合并两个有序链表例子代码注意事项待优化21.合并两个有序链表题目要求:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。例子输入:1->2->4, 1->3->4输出:1->1->2->3->4->4代码public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode temp =

2020-08-24 21:15:41 137

空空如也

空空如也

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

TA关注的人

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