代码随想录-链表-02
代码随想录链表 021. 24. 两两交换链表中的节点题目链接: LeetCode 24. 两两交换链表中的节点 思路使用虚拟头节点 我的解法12345678910111213141516171819202122/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func swapPairs(head *ListNode) *ListNode { dummy := &ListNode{ Next: head, } pre := dummy for head != nil && head.Next != nil { pre.Next = head.Next next := head.Next.Next head.Next.Next = head ...
浅析Json Web Token (JwT)
什么是 JSON Web Token (JWT)?JSON Web Token (JWT) 是一个开放标准 (RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地传输 JSON 对象形式的信息 。由于 JWT 可以被签名(使用密钥的 HMAC 算法)或使用 RSA 或 ECDSA 的公钥/私钥对,因此这些信息可以被验证和信任 。 JWT 的结构JWT 在其紧凑形式中,由句点(.)分隔的三个部分组成: Header(头部) Payload(载荷) Signature(签名) 因此,一个 JWT 通常如下所示: xxxxx.yyyyy.zzzzz 1. Header(头部)头部通常由两部分组成:token 的类型(即 JWT)和所使用的签名算法,例如 HMAC SHA256 或 RSA 。例如: 123456{ "alg": "HS256", "typ": "JWT" } 然后,这个 JSON 被 Base64Url 编码,形成 JWT ...
Untitled
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 是回文,而 123 不是。 示例 1: 输入: x = 121 输出: true 示例 2: 输入: x = -121 输出: false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: x = 10 输出: false解释:从右向左读, 为 01 。因此它不是一个回文数。 提示: -231 <= x <= 231 - 1 我的题解: 12345678910111213141516171819202122232425func isPalindrome(x int) bool {y := strconv.Itoa(x)reversed := Reverse(y)return reversed == y} func Reverse(s string) string {r :=...
代码随想录-数组-01
代码随想录数组 011. 704.二分查找题目链接: LeetCode 704. 二分查找 使用条件二分查找需要满足以下条件: 数组为有序数组 数组中无重复元素 核心原则二分法要遵循循环不变量原则,在循环中每一次的边界处理都要坚持根据区间的定义来操作,例如是左闭右开 [left, right) 还是左闭右闭 [left, right],这点要分清楚。 我的解法12345678910111213141516171819func search(nums []int, target int) int { var start = 0 var end = len(nums) - 1 var mid = start + (end - start) / 2 for start <= end { if target == nums[mid] { return mid } if target < nums[mid] { ...
代码随想录-链表-01
代码随想录链表 011. 203.移除链表元素题目链接: LeetCode 203.移除链表元素 思路使用虚拟头节点规避头节点删除问题 我的解法1234567891011121314151617181920212223/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func removeElements(head *ListNode, val int) *ListNode { for head != nil && head.Val == val { head = head.Next } cur := head for cur != nil && cur.Next != nil { if cur.Next.Val == val { cur.Next = cur.Next.Next } else...
代码随想录-数组-02
代码随想录数组 021. 209.长度最小的子数组题目链接: LeetCode 209.长度最小的子数组 思路试图暴力破解结果超时,考虑使用滑动窗口 我的解法12345678910111213141516171819202122func minSubArrayLen(target int, nums []int) int { n := len(nums) left, sum := 0, 0 ans := n + 1 for right := 0; right < n; right++ { sum += nums[right] for sum >= target { if right-left+1 < ans { ans = right - left + 1 } sum -= nums[left] left++ } &...
obsdian使用教学
obsdian 使用教学 ⚠️ 明确自己的需求,方便自己对软件的选型,能解决自己的需求的软件才是优秀的。 切记不要制造需求。 第一步安装)第二步打开)我们首先打开软件 新建仓库Obsidian 支持「仓库」概念,我们可以将自己的「个人笔记」和「工作笔记」创建不同的仓库,这样他们之间的内容互不影响,当然一切都是自由的,你可以任意创建属于自己的「仓库」。![[Pasted image 20241210085000.png]] 配置首先,关闭安全模式(因为这是要使用第三方插件必要的一步)![[Pasted image 20241210191900.png]] 接下来,你就可以体验各种各样的插件啦~ 插件obsdian 最吸引我的一点就是有各种各样的插件,而这些插件可以给自己带来非常舒适的体验😋(不要被插件插坏了喂!) 1.盘古 PanGu自动为中英文之间插入空格,排版强迫症的福音!(虽然会手动排版, 但是有的时候忘记了是真的很烦) 2.advanced tables高级版 Obsidian 表格,它添加了改进的导航、格式化和操作功能到 Obsidian 中的 Markdown 表格...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick StartCreate a new post1$ hexo new "My New Post" More info: Writing Run server1$ hexo server More info: Server Generate static files1$ hexo generate More info: Generating Deploy to remote sites1$ hexo deploy More info: Deployment