- 博客(44)
- 收藏
- 关注
原创 Transformer具体计算过程
(1)word embedding:将输入的单词进行编码(2)positionalembeddig:将输入单词的位置进行编码(3)self-attention:将输入信息的互相关系进行编码(4)残差连接:保持相对容易而且快速的并行训练举措。
2024-05-06 22:52:10
803
2
原创 【并发编程】概念入门
1:继承Thread类 重写run方法利用此方式去创建线程的话,启动线程是调用start方法,这样会创建一个新的线程,并执行线程的任务。如果直接调用run方法,这样会让当前线程执行run方法中的业务逻辑。
2023-11-21 00:17:07
103
转载 java中sort方法的自定义比较器写法(转载)
在做一些算法题时常常会需要对数组、自定义对象、集合进行排序. 在java中对数组排序提供了Arrays.sort()方法,对集合排序提供Collections.sort()方法。对自定义对象排序时要自己重写比较器,对象数组则调用Arrays.sort(),对象集合则调用Collections.sort()。两个方法默认都是升序,也可以重写比较器,实现降序。
2023-02-19 11:22:53
763
原创 LeetCode 力扣 46题 java解题思路
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。核心内容为要理解其思路,以及在深度遍历的过程中,需要状态重置的意义。了解其中错误的发生原因,java参数传递的特点。输入:nums = [1,2,3](1)全排列问题可以使用回溯法解决。输出:[[0,1],[1,0]]输入:nums = [0,1]输入:nums = [1]这个评论大神说的很详细。
2023-01-20 15:35:50
150
原创 LeetCode 力扣 39题 java解题笔记
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。输入:candidates = [2,3,6,7], target = 7。输入: candidates = [2,3,5], target = 8。输出: [[2,2,2,2],[2,3,3],[3,5]]输出:[[2,2,3],[7]]
2023-01-19 18:19:24
102
原创 LeetCode 34题 java解题笔记
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。输入:nums = [5,7,7,8,8,10], target = 8。输入:nums = [5,7,7,8,8,10], target = 6。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。如果数组中不存在目标值 target,返回 [-1, -1]。输入:nums = [], target = 0。输出:[-1,-1]输出:[-1,-1]
2023-01-19 13:52:57
261
原创 LeetCode 力扣 33题 java 解题思路
比如说要找5,从7分开后,两边总有一边是完全排序的,有一边没有,那么问题在于如何找到那个完全排序的一边,可以从两个段的首尾元素来判断,如果左端点比右端点小,那么可以得出其是完全排序的,而且其端点是最大最小值,所以可以百分百的确定目标数值在不在这个段里。论区两拨人理解的都是对的,但是说的不是一个问题:一些人说的“只在有序的半边二分”指的是以mid为分界的;该题的思路起始挺简单:始终去有序的那个范围内去找target,不在就去另一半无序的找,但是要将无序再次划分成有序然后再找...
2023-01-18 12:55:46
211
原创 力扣LeetCode 22题 java解题思路
这个人写的这个代码比官方给出的要好很多(个人观点)这个代码来自于力扣评论区。手动模拟出来类似于二叉树。
2023-01-17 20:50:33
101
原创 LeetCode 力扣 第21题解题笔记
本题可以提炼出一个字问题,假设原问题是L1和L2,并且假设L1的值更小,那么合并L1,L2,就可以做如下考虑:取出头结点L1,解决子问题:合并L1next和L2,L1的next指向子问题的结果就可以了。模式识别:子问题和原问题具有相同结构,意思就是说,返回值和要解决的问题都一致,考虑自上而下的递归。新链表是通过拼接给定的两个链表的所有节点组成的。递归这个东西真的蛮好玩的,自己理解了后画了个图一下子就清晰了。因为递归要叠加栈,最坏情况下栈有O(M+N)的深度。L1.val 意思是取链表L1的头结点。
2023-01-17 19:14:40
102
原创 LeetCode 力扣 第17题 思路笔记
所谓的子问题可以看做是输入简化后的情况,比如对于树问题,子问题就是当前节点的子树问题,对于字符串而言,子去除了当前字符,剩余字符串的问题。凡是出现“找到符合条件所有组合的解”的时候,都要使用搜索算法,从所有空间解里,找到符合要求的答案,常见的搜索算法无外乎深度和广度优先搜索两种。一般而言, 利用自顶向下的递归实现深度搜索,是最自然的想法,在这个过程中需要找到子问题,在当前递归层结合子问题的结果来解决原问题。输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
2023-01-16 22:52:44
261
原创 Leetcode 力扣 第15题解题笔记
当确定了第一个数字的时候,其他两个数字便成了力扣的第一题 ,不同的是第一题只需要找到一个解,但是这里可能有若干个解,现在问题变成了在一个有序数组中,找到所有的两数之和,使其等于一个特殊值,可以通过双指针法在On的时间内解决这个问题。给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!不同的三元组是 [-1,0,1] 和 [-1,-1,2]。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]
2023-01-16 19:05:53
139
原创 力扣第11题解题笔记
如果我们移动数字较大的那个指针,那么前者「两个指针指向的数字中较小值」不会增加,后者「指针之间的距离」会减小,那么这个乘积会减小。因此,我们移动数字较大的那个指针是不合理的。(1)第一种方式为暴力解法,遍历两个边,找到所有的容纳水的可能,但是因为有两个for循环,所以时间复杂度为O(n^2),空间复杂度为O(1)直觉告诉我们,应该移动对应数字较小的那个指针(即此时的左指针)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。两个指针指向的数字中较小值∗指针之间的距离。
2023-01-16 14:47:04
58
原创 力扣LeetCode Hot100 第三题 自用
这个是力扣官方的答案,自己根据自己的理解写一点自己的想法题目:给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度此方法为滑动窗口及其优化的方法
2023-01-13 18:56:56
55
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人