- 博客(95)
- 收藏
- 关注
原创 智能车记录
定时器中断背景:外部中断:主要采用按钮来改变参数的值定时器中断:用来控制采样周期、控制周期,使采样周期稳定。周期长,频率小,需要不断更新->采样周期应该小于控制周期。定时器中断函数:zf_pit.c定时器中断和外部中断一样,初始化后自动调用。初始化时,编码器2ms,舵机20ms。(2代表时间)数字小,优先级高(0x00 代表优先级) tim_interrupt_init_ms(TIM_3, 2, 0x00);频率f相同,同一个模块(TIM_(1-8)),不同频率模块需不同,初
2021-12-11 19:39:50
308
原创 Need Review
仅供记录例题:二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>>ans; if (root == NULL) { return ans;
2021-12-02 17:12:14
4083
原创 DP-背包问题
仅供自己记录01背包问题有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<vi,wi≤1000输
2021-11-25 14:19:24
643
原创 Leetcode11-17
冗余连接树可以看成是一个连通且 无环 的 无向 图。给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。如果有多个答案,则返回数组 edges 中最后出现的边。示例 1:输入: edges = .
2021-11-17 22:03:33
242
原创 线程的静态代理和join
//静态代理总结:真实对象和代理对象都要实现同一个接口,//代理对象要代理真实对象//好处:代理对象可以做很多真实对象做不了的事情package Test;public class TestStaticProxy { public static void main(String[] args) { new Thread(()-> System.out.println("线程")).start(); new MyZyj(new Zyj()).good.
2021-11-09 22:45:13
374
原创 Node* p = new Node();与new Node;
int main(){ Node* p = new Node(); cout << p->data << endl;//0 p->data = 9; cout << p->data << endl;//9 Node* p2 = new Node; cout << p2->data << endl;//不确定 p2->data = 91; cout << p2->data
2021-11-07 17:32:50
4506
2
原创 2021.11.4l.LeetBook
电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]来源:力扣(LeetCode)链接:http
2021-11-04 18:32:53
123
原创 线程停止-stop&sleep
package Test;public class TestStop implements Runnable { private boolean flag = true; int i = 0; public void run() { while (flag) { if (i == 900) { flag = false; } System.out.print
2021-11-03 22:29:13
131
原创 单词拆分11.2
给你一个字符串 s 和一个字符串列表 wordDict 作为字典,判定 s 是否可以由空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。示例 1:输入: s = “leetcode”, wordDict = [“leet”, “code”]输出: true解释: 返回 true 因为 “leetcode” 可以被拆分成 “leet code”。示例 2:输入: s = “applepenapple”, wordDict = [“apple”, “pen”]输出:
2021-11-02 17:37:04
104
原创 使用花费最小爬楼梯
数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。示例 1:输入:cost = [10, 15, 20]输出:15解释:最低花费是从 cost[1] 开始,然后走两步即可到阶梯顶,一共花费 15 。示例 2:输入:cost = [1,
2021-11-02 08:31:44
84
原创 多米诺和托米诺平铺(need review)
有两种形状的瓷砖:一种是 2x1 的多米诺形,另一种是形如 “L” 的托米诺形。两种形状都可以旋转。XX <- 多米诺XX <- “L” 托米诺X给定 N 的值,有多少种方法可以平铺 2 x N 的面板?返回值 mod 10^9 + 7。(平铺指的是每个正方形都必须有瓷砖覆盖。两个平铺不同,当且仅当面板上有四个方向上的相邻单元中的两个,使得恰好有一个平铺有一个瓷砖占据两个正方形。)示例:输入: 3输出: 5解释:下面列出了五种不同的方法,不同字母代表不同瓷砖:XYZ X
2021-11-01 17:58:24
240
原创 多线程实现龟兔赛跑
//模拟龟兔赛跑public class Race implements Runnable { //胜利者 private static String winner; //重写run方法 public void run() { for (int i = 0; i <= 100; i++) { //模拟兔子休息 if(Thread.currentThread().getName()=="rabbit"&
2021-10-31 22:04:51
361
原创 多线程实现购买火车票(不安全)
//多个线程操作同一个对象//买火车票的例子//问题:多个线程操作同一个对象,发生数据紊乱,线程不安全public class test4Thread implements Runnable{ private int ticknumber=10; public void run() { //模拟延时 try { Thread.sleep(100); } catch (InterruptedException e)
2021-10-31 22:04:12
203
原创 多线程实现图片下载-Runnable接口
//创建线程方法二public class test3Thread implements Runnable { private String url; private String name; test3Thread(String url,String name){ this.url=url; this.name=name; } public void run(){ WebDownloader webDownload
2021-10-31 22:03:14
92
原创 middle-term-review-java
final float a=3.14f;//常量的定义 double c=312.122; int b=100000; System.out.printf("%e",a);//格式化输出 System.out.printf("%E",c);//格式化输出 System.out.printf("%.2f",c); System.out.println(); doubl.
2021-10-31 16:28:39
96
原创 DP-最长递增子序列
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:nums = [7,7,7,7,7,7,7]
2021-10-30 21:15:01
89
原创 多线程实现图片下载1028更新
import org.apache.commons.io.FileUtils;import org.apache.commons.io.IOExceptionList;import java.io.File;import java.io.IOException;import java.net.URL;public class test2Thread extends Thread { private String url; private String name; pub
2021-10-28 22:27:17
143
原创 java-图论
基本框架import java.util.Scanner;class DenseGraph{ private int n;// 节点数 private int m;// 边数 private boolean directed;// 是否为有向图 private boolean[][]g; public DenseGraph(int n,boolean directed){ assert n>=0;//断言为真,继续执行 th
2021-10-27 21:43:16
211
原创 岛屿的最大面积
岛屿的最大面积给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。示例 1:输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,.
2021-10-24 14:36:43
66
原创 练习题 - 力扣 547. 省份数量
练习题 - 力扣 547. 省份数量有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例
2021-10-21 18:25:38
105
原创 二叉树的坡度
给定一个二叉树,计算 整个树 的坡度 。一个树的 节点的坡度 定义即为,该节点左子树的节点之和和右子树节点之和的 差的绝对值 。如果没有左子树的话,左子树的节点之和为 0 ;没有右子树的话也是一样。空结点的坡度是 0 。整个树 的坡度就是其所有节点的坡度之和。示例 1:输入:root = [1,2,3]输出:1解释:节点 2 的坡度:|0-0| = 0(没有子节点)节点 3 的坡度:|0-0| = 0(没有子节点)节点 1 的坡度:|2-3| = 1(左子树就是左子节点,所以和是 2 ;右
2021-10-21 16:34:20
82
原创 JAVA语法(10.24更新)
Scanner类import java.util.Scanner;public class z108{ public static void main(String[] args){ Scanner scan=new Scanner(System.in); double sum=0; int cnt=0; while(scan.hasNextDouble()){ double x=scan.nextDo.
2021-10-21 11:46:27
122
原创 合并区间 10.21
难点- vector数组的插入以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入:interval
2021-10-21 11:45:34
60
原创 加一(leetbook)
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。class Soluti
2021-10-21 09:05:34
116
原创 容器的方法
#include<bits/stdc++.h>using namespace std; int main() { vector<int>c; c.push_back(1); c.push_back(2); c.push_back(3); c.push_back(4); c.push_back(5); c.push_back(6); c.p
2021-10-20 11:30:50
62
原创 合并二叉树
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-two-binary-trees著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。/** * Definition for a
2021-10-20 10:40:22
42
原创 数字的补数
给你一个 正 整数 num ,输出它的补数。补数是对该数的二进制表示取反。class Solution {public: int findComplement(int num) { unsigned int mask=~0; while(num&mask){ mask<<=1; } return (~num)&(~mask); }};...
2021-10-18 08:53:38
58
原创 平衡二叉树
输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2/ \3 3/ 4 4返回 false 。来源:力扣(LeetCode)链接:https://leetcode
2021-10-17 21:31:31
48
转载 两数相加10.14
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。/** * Definition for singly-linked
2021-10-14 10:42:51
61
原创 distance 函数
#include<iostream>#include<vector>using namespace std;int main() { vector<int>ans; ans.push_back(1); ans.push_back(1); ans.push_back(1); ans.push_back(1); ans.push_back(1); auto f = ans.begin(); auto e = ans.end(); cout <&
2021-10-14 09:09:24
690
原创 例题:求根到叶子节点数字之和
例题:求根到叶子节点数字之和给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。叶节点 是指没有子节点的节点。示例 1:输入:root = [1,2,3]输出:25解释:从根到叶子节点路径 1->2 代表数字 12从根到叶子节点路径 1->3 代表数字 13因此,数字总
2021-10-07 15:21:24
96
原创 例题:二叉树的中序、后序遍历(迭代)
例题:二叉树的中序遍历给定一个二叉树的根节点 root ,返回它的 中序 遍历。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : va
2021-10-07 09:57:11
211
转载 例题:二叉树的前序遍历(迭代)
例题:二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0, 100] 内-100 <= Node.val <= 100
2021-10-06 15:45:12
232
转载 5. 最长回文子串
最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr.
2021-10-06 10:14:01
64
原创 练习:前序遍历构造二叉搜索树
练习:前序遍历构造二叉搜索树返回与给定前序遍历 preorder 相匹配的二叉搜索树(binary search tree)的根结点。(回想一下,二叉搜索树是二叉树的一种,其每个节点都满足以下规则,对于 node.left 的任何后代,值总 < node.val,而 node.right 的任何后代,值总 > node.val。此外,前序遍历首先显示节点 node 的值,然后遍历 node.left,接着遍历 node.right。)题目保证,对于给定的测试用例,总能找到满足要求的二叉搜索
2021-10-03 19:33:36
158
转载 练习:二叉树的最近公共祖先
练习:二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例 1:输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出:3解释:节点 5 和节点 1 的最近公共祖先是节点 3 。示例 2:输入:root = [3,5,1,6
2021-09-30 17:44:20
51
原创 练习:相同的树
练习:相同的树给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入:p = [1,2,3], q = [1,2,3]输出:true示例 2:输入:p = [1,2], q = [1,null,2]输出:false示例 3:输入:p = [1,2,1], q = [1,1,2]输出:false提示:两棵树上的节点数目都在范围 [0, 100] 内-104 <= Node.va
2021-09-25 08:41:41
56
原创 练习:路径总和(妙啊)
练习:路径总和给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true示例 2:输入:root = [1,2,3], targetSum = 5输出:false示例 3:输入:r
2021-09-23 21:42:58
49
原创 练习:二叉树的最小深度
练习:二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5提示:树中节点数的范围在 [0, 105] 内-1000 <= Node.val <= 1000作者:力扣 (LeetCode)链接:http
2021-09-23 20:27:15
115
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人