自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

转载 电脑有网,microsoft edge浏览器无法上网

Microsoft edge 无法上网

2022-08-19 09:23:43 8475 1

原创 QGC地面站二次开发 环境搭建过程

文章目录将本机文件复制到安装的虚拟机系统中方法一方法二ubuntu QT 安装过程问题一:安装开始的时候,显示磁盘容量不足。问题二:现需解决“磁盘已成功扩展。您必须从客户机操作系统内部对磁盘重新进行分区和扩展文件系统”。将本机文件复制到安装的虚拟机系统中方法一安装教程从windows系统中下载的QT安装包,没发直接拖到虚拟机里,要安装vmwar tools才行安装完成之后还不能进行复制,还要有以下操作虚拟机设置-选项卡-文件夹共享-总是启用上述方法试过了,还是不行方法二原文链接:打开

2022-04-25 13:54:50 2408 1

原创 总结——无人机应用相关的管理平台

文章目录一种铁路巡线无人机充系统基于高速公路违章检测的无人机地面站的设计实现一种铁路巡线无人机充系统在该系统中,无人机完成的主要工作是代替传统人工巡线模式,以提高巡线效率。但同时无人机存在续航时间短的局限性。实现该系统的同时还需要解决无人机续航时间短的问题。该系统包括电能发射模块、电能接收模块、定位模块、通信模块以及辅助检测设备。电能发射模块:负责给无人机提供电能,由设置于铁路沿线的多个相同的电能发射子模块构成;电能接收模块、定位模块、辅助检测设备:设置于无人机上,并分别与该无人机的飞行控制模

2022-03-07 21:01:02 1985

原创 剑指 Offer II 031. 最近最少使用缓存

[题目链接](剑指 Offer II 031. 最近最少使用缓存 - 力扣(LeetCode) (leetcode-cn.com))思路用双向链表和hash表模拟该最近最少使用缓存数据结构get操作:1.有该键,将该节点移到双向链表的尾部,返回值;2.没有该键,直接返回-1put操作:1.没有该键:1.1 缓存满,删除双向链表中第一个节点,再插入哈希表和双向链表的尾部;1.2 缓存没满,插入哈希表,将该节点插入到双向链表的尾部。 2.有该键:更新值,将该节点插入到双向链表的尾部;代码clas

2022-02-28 16:39:20 267

原创 剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器

[剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器](剑指 Offer II 030. 插入、删除和随机访问都是 O(1) 的容器 - 力扣(LeetCode) (leetcode-cn.com))思路一个hashmap 存放 <值,该值存放位置>的映射,一个动态数组ArrayList存放顺序存放该值。代码class RandomizedSet { HashMap<Integer,Integer> map; //键存元素val,值存位置

2022-02-27 20:17:13 74

原创 剑指 Offer II 029. 排序的循环链表

[题目链接](剑指 Offer II 029. 排序的循环链表 - 力扣(LeetCode) (leetcode-cn.com))思路特殊情况:插入链表节点数小于2一般情况:1.插入节点大于或者小于插入链表中的所有节点,此时将插入节点插入到最大节点与最小节点之间;2.插入节点介于插入链表两个节点(除了最大节点与最小节点之间)之间,找到这两个节点,直接进行插入。代码/*// Definition for a Node.class Node { public int val;

2022-02-10 10:57:00 193

原创 剑指 Offer II 028. 展平多级双向链表

[题目链接](剑指 Offer II 028. 展平多级双向链表 - 力扣(LeetCode) (leetcode-cn.com))思路递归,记住插入规则[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZV0hDhka-1644401250527)(C:\Users\赖欢\Desktop\QQ图片.jpg)]代码/*// Definition for a Node.class Node { public int val; public Node

2022-02-09 18:07:46 301

原创 剑指 Offer II 027. 回文链表

[题目链接](剑指 Offer II 027. 回文链表 - 力扣(LeetCode) (leetcode-cn.com))思路和第26题思路一样,从中间将链表分成两段,将后半段链表进行翻转,再判断前后半段值是否一样代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListN

2022-02-04 12:25:29 468

原创 剑指 Offer II 026. 重排链表

[题目链接](剑指 Offer II 026. 重排链表 - 力扣(LeetCode) (leetcode-cn.com))思路可以分成三个部分,1.将整个链表从中间进行分割成两个链表 2.将后半段链表进行翻转 3.将两段链表进行拼接当链表节点数为奇数时,前半段链表会多出一个节点代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next;

2022-02-04 11:43:01 117

原创 剑指 Offer II 025. 链表中的两数相加

[题目链接](剑指 Offer II 025. 链表中的两数相加)思路先把相加的两个整数单链表进行反转,再相加。 反转链表可看[第24题](剑指 Offer II 024. 反转链表_WoAiChiXueGao_的博客-CSDN博客)。再将相加的结果进行反转相加的过程中注意进位什么的。代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne

2022-01-23 23:12:41 447

原创 剑指 Offer II 024. 反转链表

[题目链接](剑指 Offer II 024. 反转链表 - 力扣(LeetCode) (leetcode-cn.com))思路记住当前节点、当前节点的上一个结点和下一个节点。然后将当前节点的next指针指向上一个节点。代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * Lis

2022-01-23 22:43:31 382

原创 剑指 Offer II 023. 两个链表的第一个重合节点

[题目链接](剑指 Offer II 023. 两个链表的第一个重合节点 - 力扣(LeetCode) (leetcode-cn.com))思路如果两个单链表有交点,那么这个交点后的所有节点都是相同的。两个单链表的长度可能不一样。如果长度较长的链表先移多的那几步,两个单链表剩下的节点数是一样的,然后同时向后移,遇到有相同的节点就是有交点。代码/** * Definition for singly-linked list. * public class ListNode { * i

2022-01-23 19:43:08 218

原创 剑指 Offer II 022. 链表中环的入口节点

[题目链接](剑指 Offer II 022. 链表中环的入口节点 - 力扣(LeetCode) (leetcode-cn.com))思路1.采用快慢双指针,先找到一个环中的节点。快指针一次移动两个结点,慢指针一次移动一个结点,而该链表中存在环,所以快慢指针一定会在环中相遇。假设相遇的时候,慢指针移动了k个结点,那么快指针一定移动了2k个结点,那么k=2k-k一定是环中结点数的倍数。2.再设置一个新结点从头结点出发, 该结点和慢指针最后指向的结点同时移动。当后面的结点到达入口结点时,前面的结点比它多

2022-01-22 15:59:45 514

原创 剑指 Offer II 021. 删除链表的倒数第 n 个结点

[题目链接](剑指 Offer II 021. 删除链表的倒数第 n 个结点 - 力扣(LeetCode) (leetcode-cn.com))思路前后双指针,第一个指针先向前移动n个结点,然后第一个指针和第二个指针再同时移动。第一个指针与第二个指针之间相隔n个结点,所以当第一个指针到达尾结点时,第二个指针到达倒数第n个结点。代码class Solution { public ListNode removeNthFromEnd(ListNode head, int n) {

2022-01-22 13:43:34 195

原创 剑指 Offer II 020. 回文子字符串的个数

[剑指 Offer II 020. 回文子字符串的个数](剑指 Offer II 020. 回文子字符串的个数 - 力扣(LeetCode) (leetcode-cn.com))思路看了书上的题解判断一个字符串是否为回文串,也可以选择从一个中心字符出发,看该字符左右两边的字符是否相等从中间每个字符各向左右延伸一个字符,若这两个字符相等,则构成一个回文串回文串的中心字符要么是一个字符,要么是两个相等的字符:abba、aba代码class Solution {

2022-01-21 16:41:25 557

原创 剑指 Offer II 019. 最多删除一个字符得到回文

[题目链接](剑指 Offer II 019. 最多删除一个字符得到回文 - 力扣(LeetCode) (leetcode-cn.com))思路如果左右两个字符不同,选择删除其中一个,判断剩下的字符串是否为回文串。删除左边字符后不构成回文串,再看看删除右边那个字符后是否构成回文串。代码class Solution { public boolean isValidPalindrome(String s1,String s2) { if(s1.equals(s

2022-01-18 16:37:26 379

原创 剑指 Offer II 018. 有效的回文

[题目链接](剑指 Offer II 018. 有效的回文 - 力扣(LeetCode) (leetcode-cn.com))思路将所有字符转换为小写字母双指针,左指针从第一个字符开始,右指针从最后一个字符开始。代码class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); ArrayList t = new ArrayList(); for(

2022-01-18 15:18:05 279

原创 剑指 Offer II 017. 含有所有字符的最短字符串

[剑指 Offer II 017. 含有所有字符的最短字符串](剑指 Offer II 017. 含有所有字符的最短字符串 - 力扣(LeetCode) (leetcode-cn.com))思路用hash表来存储出现的字符串的次数,包含大写字符和小写字符。使用双指针,左指针指向子字符串的第一个字符,右指针指向子字符串的最后一个字符。先将t串中出现的字符哈希表+1,再在s中分两种情况:当前子串包含t串所有字符。判断该子串是否更短,哈希表将当前左指针所指字符+1,左指针右移一位。当前子串不包含t

2022-01-18 14:34:59 98

原创 剑指 Offer II 016. 不含重复字符的最长子字符串

[题目链接](剑指 Offer II 016. 不含重复字符的最长子字符串)思路双指针用hashmap存字符和它第一次出现的下标。若右指针遍历到的字符已经出现了,先将该字符出现的第一次位置之前的字符全部清除,左指针移该字符出现的第一次位置的下一个位置。代码class Solution { public int lengthOfLongestSubstring(String s) { if(s.length() == 0) return 0; int a

2022-01-18 13:04:42 154

原创 剑指 Offer II 015. 字符串中的所有变位词

[剑指 Offer II 015. 字符串中的所有变位词](剑指 Offer II 015. 字符串中的所有变位词 - 力扣(LeetCode) (leetcode-cn.com))思路与[14题]((33条消息) 剑指 Offer II 014. 字符串中的变位词_WoAiChiXueGao_的博客-CSDN博客)思路基本一致,找一个哈希表。代码class Solution { public boolean AreALLZeros(int[] nums) { for(i

2022-01-17 20:55:30 327

原创 剑指 Offer II 014. 字符串中的变位词

[题目链接](剑指 Offer II 014. 字符串中的变位词 - 力扣(LeetCode) (leetcode-cn.com))思路s2 是否包含 s1 的某个变位词表示s2是否存在一个子串是s1的变位词。那么这个子串首先与s1长度相同,字符相同,每个字符出现的次数相同。变位词:“abcd”、“bdca”、"dacb"等互为变位词如果s2.length()<s1.length(),一定不是变位词找一个哈希表初始化为0,记录26个字符出现的次数。首先,记录下s1字符串中每个字符出现的次数

2022-01-17 20:38:42 303

原创 剑指 Offer II 013. 二维子矩阵的和

[题目链接](剑指 Offer II 013. 二维子矩阵的和 - 力扣(LeetCode) (leetcode-cn.com))思路对二维数组的每一行求前缀和代码class NumMatrix { int[][] pmatrix; public NumMatrix(int[][] matrix) { pmatrix = new int[matrix.length][matrix[0].length]; for(int i = 0; i <

2022-01-14 13:46:20 161

原创 剑指 Offer II 012. 左右两边子数组的和相等

题目链接思路前缀和的思想第0个元素左边的数组和为0,最后一个元素右边的元素默认为0代码class Solution { public int pivotIndex(int[] nums) { int ans = -1; int[] sum = new int[nums.length+2]; sum[0] = 0; for(int i = 1; i < nums.length+1; i++) {

2022-01-14 00:09:33 88

原创 剑指 Offer II 011. 0 和 1 个数相同的子数组

[题目链接](剑指 Offer II 011. 0 和 1 个数相同的子数组 - 力扣(LeetCode) (leetcode-cn.com))思路先进行预处理,若数组元素等于0时,将该数组元素变为-1。这样求含有相同数量的 0 和 1 的最长连续子数组的问题就变成了找到子数组和为0的最长连续子数组,该问题就变成了和[第十题](剑指 Offer II 010. 和为 k 的子数组 - 力扣(LeetCode) (leetcode-cn.com))一样的问题。ans = Math.max(ans

2022-01-13 23:47:17 111

原创 剑指 Offer II 010. 和为 k 的子数组

题目链接](剑指 Offer II 010. 和为 k 的子数组 - 力扣(LeetCode) (leetcode-cn.com))思路1先将前i个元素子数组之和存下来再用双重循环sum[j]-sum[i]求下标j和下标i之间的子数组和是否为k ,时间复杂度为O(n2)O(n^2)O(n2)代码1class Solution { public int subarraySum(int[] nums, int k) { int[] sum = new int[

2022-01-12 21:54:24 238

原创 剑指 Offer II 009. 乘积小于 K 的子数组 (双指针)

[题目链接](剑指 Offer II 009. 乘积小于 K 的子数组 - 力扣(LeetCode) (leetcode-cn.com))思路采用双指针,左指针右指针一开始都指向数组第一个元素的位置子数组个数:r-l+1(right指针到left指针之间子数组的个数)代码class Solution { public int numSubarrayProductLessThanK(int[] nums, int k) { int l = 0; i

2022-01-12 15:36:34 155

原创 剑指 Offer II 008. 和大于等于 target 的最短子数组

[题目链接](剑指 Offer II 008. 和大于等于 target 的最短子数组 - 力扣(LeetCode) (leetcode-cn.com))代码class Solution { public int minSubArrayLen(int target, int[] nums) { int ans = nums.length+1; int left = 0, right = 1; int num; //双指针,排除目标

2022-01-11 22:19:23 46

原创 剑指 Offer II 007. 数组中和为 0 的三个数

[题目链接](剑指 Offer II 007. 数组中和为 0 的三个数 - 力扣(LeetCode) (leetcode-cn.com))思路和第六题思路很接近,第六题是有序数组,这里数组是无序的,并且需要输出不重复的三元组。先给目标数组排序,选定第一个数,在剩下的数里面进行双指针查询,判断三个数之和是否为0。由于已经排好序了,判断下一个字符是否和当前选定的字符相同,若相同,下标继续后移,直到不相同为止。代码class Solution { public List<List&l

2022-01-09 13:38:36 372

原创 剑指 Offer II 006. 排序数组中两个数字之和

题目链接思路双指针,使用两个方向相反的指针扫描数组。代码class Solution { public int[] twoSum(int[] numbers, int target) { int left = 0; //左指针 int right = numbers.length-1; //右指针 for(;;){ if(numbers[left]+numbers[right] == target) break;

2022-01-07 17:18:34 334

原创 剑指 Offer II 005. 单词长度的最大乘积

题目链接思路两两字符串进行比较1.为每个字符串设置一个长度为26的哈希表2.由于一共只有26个字符,而整数一共有32位,每一位可以表示一个字符,可以用一个整数来表示一个字符串所出现的字符。代码1class Solution { public int maxProduct(String[] words) { int words_len = words.length; boolean[][] flag = new boolean[words_len][26

2022-01-07 16:56:48 102

原创 剑指 Offer II 004. 只出现一次的数字

题目链接思路只有一个数出现了一次,其余的数都出现了3次。若所有数都出现了三次,将所有数的每一位加上求余3都等于0;若是其中有一个数只出现了一次,那么将所有数的每一位加上求余3就等于只出现了一次的那个数。因此我们将所有数的每一位相加,最后求余3,余数即是只出现了一次的那个数。整数的二进制数最多只有32位代码1class Solution { public int singleNumber(int[] nums) { int[] ans = new int[32];

2022-01-06 14:35:06 86

原创 剑指 Offer II 003. 前 n 个数字二进制中1的个数

题目链接思路1整数numnumnum每进行一次num&(num−1)num \& (num-1)num&(num−1)运算,numnumnum的二进制数就减少一个最右边的111,然后对numnumnum进行赋值num=num&(num−1)num = num \& (num-1)num=num&(num−1),直到num=0num=0num=0,循环的次数即是numnumnum中111的个数代码1class Solution { pub

2022-01-06 13:49:11 160

原创 剑指 Offer II 002. 二进制加法(二进制运算)

题目链接二进制的位运算只有6种:非(!)、与(&)、或(|)、异或(^)、左移(<<)和右移(>>)。注意机器中,数的二进制都是存的补码异或运算^是相异为1,相同为0在左移<<运算中,正数与负数相同。计算a<<3a <<3a<<3时,在aaa的最右边添加3个0即可。在右移>>运算中,正数与负数不同。计算a>>3a >>3a>>3时,若aaa为正数,在aaa的最左边添加

2022-01-05 22:37:49 690

原创 剑指 Offer II 001. 整数除法

题目链接思路排除−231/(−1)-2^{31}/(-1)−231/(−1)的情况。因为整数的范围为(−231———231−1)(-2^{31}———2^{31}-1)(−231———231−1)。由于(被除数,除数)会出现(+,-)、(-,+)、(+,+)及(-,-)四种情况,其中(+,+)及(-,-)最容易计算。但是当−231-2^{31}−231转成正数时会出现溢出的情况。因此默认将(被除数,除数)转成(-,-)。最后商的正负情况根据实际情况去调整。如代码中的flag。首先考虑被除数是否小于

2022-01-04 22:50:13 72

转载 什么是凸函数以及如何判断函数是否为凸函数

这里写自定义目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markd

2021-12-29 14:10:59 17443 2

原创 IntelliJ IDEA——import导入包不显示

File -> Settings -> Editor -> General -> Auto Import -> Optimize imports on the fly(取消勾选) -> Apply ->OK

2021-11-04 21:25:40 2019

原创 尚硅谷Java零基础入门教程——学习笔记1

文章目录IT定律之计算机行业发展规律IT定律之计算机行业发展规律摩尔定律: 当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。安迪-比尔定律:反摩尔定律:如果你反过来看摩尔定律,一个IT公司如果今天和18个月前卖掉同样多的、同样的产品,它的营业额就要降一半。...

2021-11-04 14:58:02 280

原创 LeetCode——9.回文数

题目链接思路:首先判断是否是负数,若为负数,直接返回false。将int转字符串,用l表示首指针,r表示尾指针,判断所指字符是否相同;若相同,l++,r–,继续判断。当l>r时退出循环。class Solution {public: bool isPalindrome(int x) { if(x < 0) return false; stringstream s; string y; s << x;

2021-11-01 19:49:04 49

原创 LeetCode——8. 字符串转换整数 (atoi)

题目链接思路:分两个部分:第一个部分:通过while循环找到第一个有效的数字开始的位置考虑判断的顺序:1.前导空格2.正负号+,-3.前导零4.开始读5.读到非数字字符,直接返回0注意:1.前导空格只能出现在±,首位0,数字1-9之前2.+,-号智能出现在首位0,数字1-9之前;并且只能出现一次因此,当出现了+、-、或者0-9的数字后,用bool f = true进行标记,表示前导空格和+、-号不能再出现了第二个部分:通过for循环形成我们要输出的整数考虑:1.所形成的数大于int

2021-11-01 19:28:31 3019

原创 LeetCode——7. 整数反转

题目链接思路:一开始的思路是想int转字符串再转int,奈何太麻烦,并且stoi()无法通过编译。最后只好乖乖看题解。从int的末尾开始判断:假设当前数为x,最后反转的数为ans=0.先对x进行一个预处理,防止末尾的0跑到了首位。res = x % 10, ans = ans * 10 + res,x /= 10;最后反转的数int可能存不下,在倒数第二位开始判断是否产生越界。int转stringint x = pow(2,31)-1;stringstream s;string y;s &l

2021-11-01 14:58:14 4302

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除