Vue-QuickStarted
说明1hexo 中的语法不允许出现两个'}' 连着的情况, 所以代码中的两个 '}' 引用符号全部改为了']]'
vue2.x 技术快速上手vue是一个用于构建用户界面的渐进式框架
构建用户界面: 基于数据动态渲染页面
渐进式: 循序渐进的学习
框架: 按照约定的规则进行开发
两种开发方式:
Vue核心包开发 场景:局部模块改造
Vue核心包&Vue插件&工程化 场景:整站开发
创建一个vue实例核心四部:
准备容器
引包(官网) — 开发版本/生产版本
创建Vue实例 new Vue()
指定配置项,渲染数据
el:指定挂载点
data提供数据
vue响应式特性:
什么是响应式?
简单理解就是数据变,视图对应变。
如何访问 和 修改 data中的数据(响应式演示)
data中的数据, 最终会被添加到实例上
① 访问数据: “实例.属性名”
② 修改数据: “实例.属性名”= “值”
vue指令 v-XX ...
栈和队列篇总结
20 有效括号题目:
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
示例 1:
12输入:s = "()"输出:true
示例 2:
12输入:s = "()[]{}"输出:true
示例 3:
12输入:s = "(]"输出:false
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
思路因为题目中给出了s中的括号由(){}[]三者组成。遍历字符串, 如果遇到( 就将) 添加进入栈, 如果遇到[ 就将]添加进入栈, {也是相同的方式。
为什么用这种方式呢, 因为题目中说了
...
力扣每日一刷(2023.10.2)
203 移除链表元素题目:
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
示例 1:
12输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]
示例 2:
12输入:head = [], val = 1输出:[]
示例 3:
12输入:head = [7,7,7,7], val = 7输出:[]
提示:
列表中的节点数目在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= val <= 50
思路:题目要求: 删除链表中所有满足 Node.val == val的节点 。
首先需要删除前缀节点中含有val相等的节点
接下来就是删除中间和后面含有val相等的节点。
前缀中含有的我们可以直接通过移动头节点到下一个节点即可。
中间的就需要断开要删除的节点的连接, 使其连接到要删除节点的下一位上。 就是node.next = node.next.next
至于末尾的如果有要删除的节点 ...
Java内存区域
概述
本篇文章是根据学习《深入理解Java虚拟机》书籍及其聆听尚硅谷宋红康老师讲解 ,最终自己按照自己的理解总结而出
图片引用: https://imlql.cn/post/a7ad3cab.html && 尚硅谷教育
对于c++选手来说, 内存管理是一项基本功,因为c++没有自带的管理技术, 所以c++开发人员需要自己对实现的所有代码进行内存管理。 虽然说Java实现了一套自己的内存管理机制, 这让Java程序员可以全心投入到需求开发中去, 不需要对内存做太多了的了解。 但是问题也正是出现在这里, 因为不知道虚拟机是怎么使用内存的,所以出了问题也是无从下手,不知道具体哪里出了问题。 所以这些都是我们Java程序员需要了解和掌握的内存管理技术的原因。
之前我们学习了类加载器子系统的知识 ,知道了一个Class文件是如何一步步被加载到虚拟机内存中的开始 ,到卸载出内存位为止, 他的整个生命周期以及每个周期所做的事等等….
既然一个类已经被加载到内存了 ,那么下一步就是查看内存如何管理这些了
运行时数据区(Runtime Data Area)
当我们通过前面 ...
力扣每日一刷(2023.9.24)
739 每日温度题目:
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
示例 1:
12输入: temperatures = [73,74,75,71,69,72,76,73]输出: [1,1,4,2,1,1,0,0]
示例 2:
12输入: temperatures = [30,40,50,60]输出: [1,1,1,0]
示例 3:
12输入: temperatures = [30,60,90]输出: [1,1,0]
提示:
1 <= temperatures.length <= 105
30 <= temperatures[i] <= 100
思路本题其实可以使用暴力解法实现的, 但是力扣的时间复杂度分析的有问题, O(n2)的时间复杂度尽然过不了。
所以只能寻求更简洁的方法, 那就是通过空间换取时间(单调栈思路)
使用单调栈, 如果出现单调递减的情况, 那么就直接入栈, ...
力扣每日一刷(2023.9.21)
392 判断子序列题目:
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,”ace”是”abcde”的一个子序列,而”aec”不是)。
进阶:
如果有大量输入的 S,称作 S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
示例 1:
输入:s = “abc”, t = “ahbgdc” 输出:true
示例 2:
输入:s = “axc”, t = “ahbgdc” 输出:false
提示:
0 <= s.length <= 100
0 <= t.length <= 10^4
两个字符串都只由小写字符组成。
思路本题其实不使用动态规划的思路也是能够解出来的 ,并且时间复杂度 和 空间复杂度更低。 因为题目中问的是 s 是否为t 的自序列, 我们自需要顺序遍历 t , ...
力扣每日一刷(2023.9.19)
300 最长递增子序列题目:
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。
子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。
示例 1:
123输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。
示例 2:
12输入:nums = [0,1,0,3,2,3]输出:4
示例 3:
12输入:nums = [7,7,7,7,7,7,7]输出:1
提示:
1 <= nums.length <= 2500
-104 <= nums[i] <= 104
进阶:
你能将算法的时间复杂度降低到 O(n log(n)) 吗?
思路:本题刚开始其实我是按照双指针做的, 当时看到这道题想都没想 直接通过滑动窗口的方式确定最大的递增子序列。 结果看来用例才发现他找的是子序列, 不是连续子序列……
所以滑动窗口的方式基本是不适用这道题的(就算适用我也没想出 ...
力扣每日一刷(2023.9.14)
377 组合总和Ⅱ题目
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。
示例 1:
123456789101112输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。
示例 2:
12输入:nums = [9], target = 3输出:0
提示:
1 <= nums.length <= 200
1 <= nums[i] <= 1000
nums 中的所有元素 互不相同
1 <= target <= 1000
进阶:如果给定的数组中含有负数会发生什么?问题会产生何种变化?如果允许负数出现,需要向题目中添加哪些限制条件?
思路题目中说到:从 nums 中找出并返回总和为 target 的元素组合的个数。 但是后 ...
力扣每日一刷(2023.9.12)
416 分割等和子集题目:
题目难易:中等
给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
注意: 每个数组中的元素不会超过 100 数组的大小不会超过 200
示例 1:
输入: [1, 5, 11, 5]
输出: true
解释: 数组可以分割成 [1, 5, 5] 和 [11].
示例 2:
输入: [1, 2, 3, 5]
输出: false
解释: 数组不能分割成两个元素和相等的子集.
提示:
1 <= nums.length <= 200
1 <= nums[i] <= 100
思路:题目中要求 :使得两个子集的元素和相等。 那么就可以对数组中的所有元素求和, 如果sum%2 != 0 ,那么就直接返回false 。原因这里就不多了, 奇数怎么可能有两个相等的子集和呢?
如此一来就可以将本体转换为求数组中的元素之和能否等于 sum/2了。 这样就可以用到动态规划的思路来进行解题了。
dp[i] 表示 背包容量为 i 的背包, 所能容纳的物体的最大价 ...
力扣每日一刷(2023.9.11)
63题目
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
网格中的障碍物和空位置分别用 1 和 0 来表示。
示例 1:
输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]
输出:2 解释:
3x3 网格的正中间有一个障碍物。
从左上角到右下角一共有 2 条不同的路径:
向右 -> 向右 -> 向下 -> 向下
向下 -> 向下 -> 向右 -> 向右
示例 2:
输入:obstacleGrid = [[0,1],[0,0]]
输出:1
提示:
m == obstacleGrid.length
n == obstacleGrid[i].length
1 <= m, n <= 100
思路本题其 ...