- 博客(50)
- 资源 (2)
- 收藏
- 关注
原创 使用趋动云部署ChatGLM3-6B模型
等待开发者工具加载完成 -> 点击 JupyterLab 进入开发环境。同样地,我们需要再创建一个 8501 端口。在终端输入tmux,进入一个会话窗口。浏览器打开streamlit,测试功能。2)运行 streamlit 界面。打开gradio界面,测试功能。1)运行 gradio 界面。打开 terminal。
2023-11-04 16:43:02
311
原创 最小操作/移动次数使数组元素相等Ⅰ&Ⅱ
LeetCode 记录453.最小操作次数使数组元素相等题意,给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数分析:n-1个元素每次增加1,等价于1个元素,每次减少1class Solution { public int minMoves(int[] nums) { //n-1个数+1,等价于1个数-1 int min = nums[0]; for (int i : nu.
2021-10-20 07:22:58
343
原创 Trie(字典树、前缀树)数据结构
前缀树是一种非典的的多叉树,多叉树好理解就是多个分支,非典型则是指前缀树的节点的数据结构与一般的树不同。先上代码,再讲我的理解(对应于LeetCode 208)class Trie { private Node root; public Trie() { root = new Node(); } public void insert(String word) { Node tmp = root; int p.
2021-10-19 10:58:18
111
原创 十一届蓝桥杯 Java 数字三角形
public class Main { static int dr = 0;//向下+1,向右下-1 static int max = 0; static int N; static int[][] matrix; public static void main(String[] args) throws IOException { /*思路 dfs, dr={-1,0,1} */ BufferedReader br
2021-01-09 16:42:22
805
2
原创 十一届蓝桥杯Java省赛 排序
public class Main { public static void main(String[] args) { /*思路,逆序字符串,计算一下即可 11个字母 nmlkjihgfedcba (13+0)*14/2 = 13*7 = 91 onmlkjihgfedcba 14*15/2 = 7*15 = 105 jonmlkihgfedcba 100次交换 */
2021-01-09 15:56:53
884
转载 十一届蓝桥杯Java省赛 七段码 代码解析
import java.util.ArrayList;public class Main { static int cnt = 0; static boolean[] isVisited = new boolean[7];;//判断是否访问 static ArrayList<Integer> list[];//临界表 static boolean[] isCheck = new boolean[1<<8];//不同路径的和不一样 static
2021-01-09 15:13:58
1685
原创 动态规划 单调栈 代码详解 1130.叶值的最小代价生成树
1130.叶值得最小代价生成树给你一个正整数数组 arr,考虑所有满足以下条件的二叉树:每个节点都有 0 个或是 2 个子节点。数组 arr 中的值与树的中序遍历中每个叶节点的值一一对应。(知识回顾:如果一个节点有 0 个子节点,那么该节点为叶节点。)每个非叶节点的值等于其左子树和右子树中叶节点的最大值的乘积。在所有这样的二叉树中,返回每个非叶节点的值的最小可能总和。这个和的值是一个 32 位整数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob.
2020-10-21 13:20:24
154
原创 动态规划 求矩阵区域和 代码详解
–1314. 矩阵区域求和给你一个 m * n 的矩阵 mat 和一个整数 K ,请你返回一个矩阵 answer ,其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和:i - K <= r <= i + K, j - K <= c <= j + K(r, c) 在矩阵内。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/matrix-block-sumclass Solution
2020-10-15 13:47:27
321
原创 代码注释详解 判断是否是子树 剑指Offer26. 树的子结构
剑指Offer26. 树的子结构输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcofclass Solution { public boolean isSubStructure(TreeNode A, TreeNode B) { .
2020-10-14 11:30:02
158
原创 回溯 动态规划(0-1背包问题) 优化动态规划 416. 分割等和子集
416.分割等和子集给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/partition-equal-subset-sum1、回溯 (会超时)class Solution { public boolean canPartition(int[] nums) {//0-1背包问.
2020-10-11 12:53:08
306
1
转载 树上DP 代码注释 834.树中距离之和
834.树中距离之和给定一个无向、连通的树。树中有 N 个标记为 0…N-1 的节点以及 N-1 条边 。第 i 条边连接节点 edges[i][0] 和 edges[i][1] 。返回一个表示节点 i 与其他所有节点距离之和的列表 ans。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sum-of-distances-in-tree/solution/shu-zhong-ju-chi-zhi-he-by-leetcode-solution
2020-10-06 09:30:21
183
原创 设计 [循环队列] 以及 [循环双端队列] 代码
循环队列class MyCircularQueue { int[] queue; int front; int rear; int capacity; /** Initialize your data structure here. Set the size of the queue to be k. */ public MyCircularQueue(int k) { capacity = k + 1; queue = ne
2020-10-05 12:08:02
126
原创 滑动窗口 双队列实现 代码注释 剑指Offer59-I. 滑动窗口的最大值
–剑指Offer59-I. 滑动窗口的最大值-给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。来源:LeetCodepublic int[] maxSlidingWindow(int[] nums, int k) { if (nums == null || nums.length == 0){ return new int[0]; } int[] res = new int[nums.length - k + 1];
2020-10-05 10:52:47
126
原创 RMQ 线段树 区间和、区间最值 代码
public class SegmentTree { @Test public void test(){ buildMin(0); int min = query(0, 3, 5); System.out.println(min);// updateOne(0,4,5);// max = query(0, 3, 5);// System.out.println(max);buildSum(0);
2020-10-04 12:17:15
144
原创 代码详注 132. 分割回文串Ⅱ
132.分割回文串Ⅱ给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回符合要求的最少分割次数。点击挑战leetcodepublic int minCut(String s) { int n = s.length(); //1. 为了降低时间复杂度,所以提前用动态规划求出s中的回文子串 //1.1 isPalindrome[i][j]=x,表示为区间[i,j]的子串是否是回文串 boolean[][] isPalindrome = new bo.
2020-09-23 13:15:05
102
原创 啥叫并查集啊(战术后仰) 由定义到应用带你团灭并查集 (含例题和详细注释)
引用Wikipedia 对并查集的定义在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。Union:将两个子集合并成同一个集合。由于支持这两种操作,一个不相交集也常被称为联合-查找数据结构(union-find data structure)或合并-查找集合(merge
2020-09-17 11:10:18
185
原创 尽量详解 474.一和零 、377.组合总和IV
动态规划题的基本模板private void dp(int m,int n){ //1.状态:xxxx; 选择:xxxx //2.dp[i][j]=val,i表示xx,j表示xx,val表示xx //3.初始条件 //状态转移 for (状态一) { for (状态二){ for(选择){ //4.状态转
2020-09-14 19:48:54
218
原创 两种回溯方式求解 77.组合
77.组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。LeetCodehttps://leetcode-cn.com/problems/combinations/List<List<Integer>> ans = new ArrayList<>();public List<List<Integer>> combine(int n, int k) { if(n <= 0 || k <=.
2020-09-08 07:23:53
163
原创 347.前K个高频元素
347.前K个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。LeetCodehttps://leetcode-cn.com/problems/top-k-frequent-elements/现用 HashMap计数,再用PriorityQueuepublic int[] topKFrequent(int[] nums, int k) { HashMap<Integer,Integer> map = new HashMap<>(); .
2020-09-07 07:52:18
110
原创 规律题 60.第k个排列
60.第k个排列给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutation-sequence乍.
2020-09-05 10:20:48
192
转载 两种解法代码 (KMP、Manacher) 214.最短回文串
以下代码参考自:https://leetcode-cn.com/problems/shortest-palindrome/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by–44/214.最短回文串给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。来源:LeetCode网址:https://leetcode-cn.com/problems/shortest-palindro.
2020-08-29 12:13:07
249
原创 回溯+贪心 代码注释(Java)322.重新安排行程
332.重新安排行程给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。.
2020-08-27 11:32:25
189
原创 代码注释(递归枚举+剪枝) 491.递归子序列
491.递归子序列给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。来源:LeetCode网站:https://leetcode-cn.com/problems/increasing-subsequences/版本一:递归枚举+Set去重 /** * 算法一:递归枚举 * 思路:每一个位置的数,选择或不选择 */ Set<List<Integer>> set = new HashSet<.
2020-08-25 23:38:29
199
原创 递归 面试题17.12.BiNode
面试题17.12.BiNode二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。实现一个方法,把二叉搜索树转换为单向链表,要求依然符合二叉搜索树的性质,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。返回转换后的单向链表的头节点。注意:本题相对原题稍作改动来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binode-lcci/*** 根 右 左*/TreeNode pre =.
2020-08-23 22:50:25
129
原创 暴力递归枚举算法 之 24点游戏
679.24点游戏你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。来源:LeetCode地址:https://leetcode-cn.com/problems/24-game/思想:(1)第一次从列表中随意取出两个数,做四则运算后再放回列表,即从4个数变成3个数。(2) 从剩下三个数中,任取两个数,做四则运算后放回,即从3个数变成2个数。(3)将两个数进行四则运算,如果结果是24±1e-6,则表明找到24点,反之没找到代码:pu.
2020-08-22 22:24:10
602
原创 根据先序和中序序列 还原二叉树 递归 剑指Offer 07.重建二叉树
剑指Offer 07.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。来源:LeetCode网址:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/public TreeNode buildTree(int[] preorder, int[] inorder) { if(preorder == null || inorder == null ||.
2020-08-19 12:25:57
174
原创 两种算法 647.回文子串 (动态规划、中心扩散)
647.回文子串给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。来源:LeetCode网址:https://leetcode-cn.com/problems/palindromic-substrings/动态规划dp[i][j]=x,表示在区间i,j的子串,是否为回文public int countSubstrings(String s) { if(s == null || s.lengt.
2020-08-19 08:39:25
138
原创 看懂快慢指针系列 之 以LeetCode 455.分发饼干、141.环形链表、142.环形链表Ⅱ、125.验证回文串、109.有序链表转换为二叉搜索树 为例
1)109.有序链表转换为二叉搜索树给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/convert-sorted-list-to-binary-search-treepublic TreeNode sortedListToBST(ListNode head) { if(h.
2020-08-18 09:55:51
165
转载 异或^和与非&~的使用 136.只出现一次的数字 137.只出现一次的数字Ⅱ
以下内容均参考至LeetCode评论区的大佬们136.只出现一次的数字https://leetcode-cn.com/problems/single-number/public int singleNumber(int[] nums) { //1. a ^ 0 = a //2. a ^ b ^ c = a ^ c ^ b //3. a ^ a = 0 int ans = 0; for(int i = 0;i < nums.length;i++).
2020-08-17 14:20:34
234
原创 DFS、双向BFS 127.单词接龙
127.单词接龙DFS(超时) /** * 算法一:暴力回溯 * 超时!! * */ /** * * @param beginWord:src 字符串 * @param endWord:des 字符串 * @param wordList:字典 * @return 转换序列长度,即转换次数+1 */ static boolean[] isVisited; public static.
2020-08-17 10:08:16
130
原创 AVL树的判定 110.平衡二叉树
110.平衡二叉树/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isBalanced(TreeNode root) { .
2020-08-17 08:04:55
93
原创 递归 733.图像渲染
733.图像渲染public int[][] floodFill(int[][] image, int sr, int sc, int newColor) { if (sr < 0 || sc < 0 || sr >= image.length || sc >= image[0].length || image[sr][sc] == newColor) return image; int ori = image[sr][sc]; image[sr][s.
2020-08-16 10:18:44
100
原创 124.二叉树中的最大路径 beat 99.86%
124.二叉树中的最大路径和class Solution { /** *思想,自底向上,原地修改每个节点,修改为经过节点的最大路径和 *前提:每个节点(除了始末节点)都有两个分支,与其根相连、与其左子树相连、与其右子树相连(三选二) *所以,选择策略就是就可以分为两个,(1)选择左右子树中最大的那条路径,然后与其根相连;(2)同时选择其左右子树路径形成最长路径 *全局变量MAX就来记录最长路径 */ int MAX = Integer.
2020-08-16 10:16:34
111
原创 125.验证回文串 栈、双指针
125.验证回文串代码/** (11ms) *算法一:栈 */public boolean isPalindrome(String s) { if(s == null || s.length() == 0) return true; Stack<Character> stack = new Stack<>(); List<Character> list = new ArrayList<>(); for (int i.
2020-08-15 06:37:26
135
原创 120.三角形最小路径和 (从dfs+记忆化到动态规划dp)
120.三角形最小路径和dfs+记忆化/**(超时)* 算法一:dfs+备忘录 (自顶向下)*/public int minimumTotal(List<List<Integer>> triangle) { if (triangle == null || triangle.size() == 0) return 0; return BT(triangle,1,triangle.get(0).get(0),0,new HashMap<int[],Inte.
2020-08-14 13:08:31
178
原创 杨辉三角 118.杨辉三角 119.杨辉三角Ⅱ(数学解法)
118.杨辉三角public List<List<Integer>> generate(int numRows) { if (numRows == 0) return new ArrayList<>(); List<List<Integer>> list = new ArrayList<>(); //特殊处理一下第一行 List<Integer> tmp = new ArrayList&.
2020-08-14 10:27:08
148
原创 括号匹配 20.有效的括号
20.有效的括号代码public boolean isValid(String s) { if (s == null || s.length() == 0) return true; if (s.length() % 2 != 0) return false; //栈 Stack<Character> stack = new Stack(); char ch; for (int i = 0;i < s.length();i++){ .
2020-08-14 08:23:33
133
原创 模拟手算 415.字符串相加 43.字符串相乘
415.字符串相加代码public String addStrings(String num1, String num2) { StringBuilder sb = new StringBuilder(); int i = num1.length()-1,j = num2.length()-1,tmp = 0; while (i >= 0 || j >=0 || tmp > 0) { if (i >= 0) tmp += num1.ch.
2020-08-14 07:53:30
93
思维导图 计算机组成原理 唐朔飞
2020-07-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人