- 博客(917)
- 资源 (23)
- 收藏
- 关注
原创 C++ performance 性能分析工具(sanitizers valgrind gprof gperftools perf)的使用
文章目录1. time2. Sanitizers2.1 内存泄漏`-fsanitize=leak`2.2 地址错误 `-fsanitize=address`3. Valgrind 工具集3.1 memory error detector3.1.1 简单例子3.1.2 更多3.2 call-graph generating4. GNU gprof (GNU Profiler)4.1 以文本显示4.2 以图形显示5. gperftools (Google Performance Tools)5.1 text
2022-01-20 14:41:06 6112 1
原创 常用排序算法 C++ 实现
文章目录1. 冒泡排序2. 选择排序3. 插入排序4. 希尔排序5. 归并排序6. 快速排序1. 冒泡排序#include <iostream>#include <vector>//冒泡排序void BubbleSort(std::vector<int>& arr){ int length = arr.size(); if(length<2) return; for(int i=length-1; i>=0; --
2021-08-05 17:36:24 1279
转载 五大常用算法简介
1、递归与分治递归算法:直接或者间接不断反复调用自身来达到解决问题的方法。这就要求原始问题可以分解成相同问题的子问题。示例:阶乘、斐波纳契数列、汉诺塔问题斐波纳契数列:又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F1=1,F2=1,Fn=F(n-1)+F(n-2)(n>2,n∈N*))。分治算法:待解决复杂的问题能够简化为几个若干个小规模相同的问题,然后逐步划分,达到易于解决的程度。1、将原问题分解为n个规模较
2021-08-03 17:13:42 2360
原创 [LeetCode C++] 9. 回文数
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/palindrome-number/题目:方法一:反转一半数字class Solution {public: bool isPalindrome(int x) { // 特殊情况: // 如上所述,当 x < 0 时,x 不是回文数。 // 同样地,如果数字的最后一位是 0,为了使该数字为回文, // 则其第一位数字也
2021-08-01 17:14:10 455
原创 [LeetCode C++] 8. 字符串转换整数 (atoi)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/string-to-integer-atoi/题目:解法1:遍历class Solution {public: int myAtoi(string s) { int res = 0; int i=0; int flag=1; //处理空格 while(s[i]==' '){ i++
2021-08-01 15:45:54 327
原创 [LeetCode C++] 5. 最长回文子串
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring/题目:解法:中心扩散法class Solution {public: pair<int, int> expandAroundCenter(const string& s, int left, int right){ while(left>=0 && right<s.
2021-08-01 13:47:26 311
原创 [LeetCode C++] 2. 两数相加
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers/题目:解法:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x)
2021-07-31 16:50:26 435
原创 C++ 验证IP地址是否合法(IPv4 & IPv6)
方法一:字符串验证#include <iostream>#include <string>using namespace std;/*IPv6的错误形式可能有如下: 1.多了0 2.出现:: 3.字符不在0-9 a-f A-F之间IPv4错误形式可能有如下: 1.多了首位'0' 2.超过0-255范围 3.首位是"."或出现的".." 4.不能为 '.'和’0-9‘ 之外的数字 5.不为4段 */c
2021-07-30 15:09:42 7264 2
原创 [LeetCode C++] 56. 合并区间
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-intervals/题目:解法:class Solution {public: vector<vector<int>> merge(vector<vector<int>>& intervals) { if (!intervals.size()) return {}; sort(inter
2021-07-29 16:08:25 308
原创 [LeetCode C++] 35. 搜索插入位置
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/search-insert-position/题目:方法一:二分查找class Solution {public: int searchInsert(vector<int>& nums, int target) { int l=0; int r=nums.size()-1; while(l<=r){
2021-07-29 15:15:00 299
原创 [LeetCode C++] 724. 寻找数组的中心下标
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/find-pivot-index/题目:解法:class Solution {public: int pivotIndex(vector<int> &nums) { int total = accumulate(nums.begin(), nums.end(), 0); int sum = 0; for (int i
2021-07-29 14:58:21 393
原创 [LeetCode C++] 80. 删除有序数组中的重复项 II
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array-ii/题目:方法一:双指针class Solution {public: int removeDuplicates(vector<int>& nums) { int n = nums.size(); if (n <= 2) { retu
2021-07-25 22:04:00 361
原创 [LeetCode C++] 27. 移除元素
来源:力扣(LeetCode)链接:题目:方法一:双指针class Solution {public: int removeElement(vector<int>& nums, int val) { int n = nums.size(); int left = 0; for (int right = 0; right < n; right++) { if (nums[right] != v
2021-07-25 22:00:50 286
原创 [LeetCode C++] 141. 环形链表
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle/题目:方法一:哈希表/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Soluti
2021-07-25 19:42:51 317
原创 [LeetCode C++] 234. 回文链表
来源:力扣(LeetCode)链接:题目:方法一:将值复制到数组中后用双指针法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode
2021-07-25 19:29:16 304
原创 [LeetCode C++] 21. 合并两个有序链表
来源:力扣(LeetCode)链接:题目:方法一:递归/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, List
2021-07-25 17:37:48 307
原创 [LeetCode C++] 206. 反转链表
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list/题目:方法一:迭代class Solution {public: ListNode* reverseList(ListNode* head) { ListNode* prev = nullptr; ListNode* curr = head; while (curr) { Li
2021-07-25 17:01:48 510 1
原创 [LeetCode C++] 19. 删除链表的倒数第 N 个结点
来源:力扣(LeetCode)链接:题目:方法一:计算链表长度class Solution {public: int getLength(ListNode* head) { int length = 0; while (head) { ++length; head = head->next; } return length; } ListNode* re
2021-07-25 16:29:39 323
原创 [LeetCode C++] 237. 删除链表中的节点
[LeetCode C++]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/题目:解法:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {}
2021-07-25 16:08:20 292
原创 [LeetCode C++] 14. 最长公共前缀
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-common-prefix/题目:方法一:横向扫描class Solution {public: string longestCommonPrefix(vector<string>& strs) { if (!strs.size()) { return ""; } string p
2021-07-25 14:57:54 498
原创 [LeetCode C++] 38. 外观数列
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/count-and-say/题目:方法一:双指针class Solution {public: string countAndSay(int n) { if(n==1) return "1"; string pre=""; string cur="1"; for(int i=1; i<n; i++){
2021-07-25 14:28:39 222
原创 [LeetCode C++] 28. 实现 strStr()
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-strstr/题目:方法一:暴力匹配class Solution {public: int strStr(string haystack, string needle) { int n = haystack.size(), m = needle.size(); for (int i = 0; i + m <= n; i++) {
2021-07-25 14:09:13 178
原创 [LeetCode C++] 8. 字符串转换整数 (atoi)
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/string-to-integer-atoi/题目:方法一:字符串的转换class Solution { public int myAtoi(String s) { boolean isNegative = false; int len = s.length(); int index = 0, number = 0; wh
2021-07-25 13:55:19 237
原创 [LeetCode C++] 125. 验证回文串
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome/题目:关键函数:方法一:筛选+判断class Solution {public: bool isPalindrome(string s) { string sgood; for (char ch: s) { if (isalnum(ch)) { sgood +=
2021-07-25 10:57:23 181
原创 [LeetCode C++] 242. 有效的字母异位词
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-anagram/题目:方法一:排序class Solution {public: bool isAnagram(string s, string t) { if (s.length() != t.length()) { return false; } sort(s.begin(), s.end());
2021-07-25 10:33:51 147
原创 [LeetCode C++] 387. 字符串中的第一个唯一字符
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/first-unique-character-in-a-string/题目:方法一:使用哈希表存储频数class Solution {public: int firstUniqChar(string s) { unordered_map<int, int> frequency; for (char ch: s) { ++
2021-07-25 10:10:34 173
原创 [LeetCode C++] 7. 整数反转
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer题目:方法一:数学class Solution {public: int reverse(int x) { int rev = 0; while (x != 0) { if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {
2021-07-25 09:59:53 196
原创 [LeetCode C++] 344. 反转字符串
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-string题目:方法一:双指针class Solution {public: void reverseString(vector<char>& s) { int n = s.size(); for (int left = 0, right = n - 1; left < right; ++left, --righ
2021-07-25 09:52:41 200
原创 [LeetCode C++] 48. 旋转图像
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-image题目:方法一:使用辅助数组class Solution {public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); // C++ 这里的 = 拷贝是值拷贝,会得到一个新的数组 auto matri
2021-07-24 22:13:47 185
原创 [LeetCode C++] 1. 两数之和
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum题目:方法一:暴力枚举class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int n = nums.size(); for (int i = 0; i < n; ++i) { for
2021-07-24 21:18:03 195
原创 [LeetCode C++] 283. 移动零
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes解法:双指针class Solution {public: void moveZeroes(vector<int>& nums) { int n=nums.size(), left=0, right=0; while(right < n){ if(nums[right]){
2021-07-24 20:11:45 176
原创 [LeetCode C++] 66.加一
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/plus-one题目:解法:class Solution {public: vector<int> plusOne(vector<int>& digits) { for (int i = digits.size() - 1; i >= 0; --i) { ++digits[i]; dig
2021-07-24 20:02:53 173
原创 [LeetCode C++] 350. 两个数组的交集 II
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii方法一:哈希表class Solution {public: vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { if(nums1.size() > nums2.size()){
2021-07-24 19:41:10 227
原创 [LeetCode C++] 136. 只出现一次的数字
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/single-number/题目描述:方法一:异或class Solution {public: int singleNumber(vector<int>& nums) { int ret = 0; for (auto e:nums){ ret ^= e; } return ret
2021-07-24 19:02:37 154
原创 [LeetCode C++] 217. 存在重复元素
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/contains-duplicate题目:方法一:排序class Solution {public: bool containsDuplicate(vector<int>& nums) { sort(nums.begin(), nums.end()); int n = nums.size(); for(int i=0; i
2021-07-24 17:15:17 238
原创 [LeetCode C++] 189. 旋转数组
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-array解法:class Solution {public: void rotate(vector<int>& nums, int k) { int n = nums.size(); vector<int> newArr(n); for(int i=0;i<n;i++) .
2021-07-24 17:02:35 148
原创 [LeetCode C++] 122. 买卖股票的最佳时机 II
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii题目:给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: prices = [7,1,5,3,6,4]输出: .
2021-07-24 16:43:09 156
转载 [LeetCode C++] 26. 删除有序数组中的重复项
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数.
2021-07-24 16:26:11 192
原创 计算机专业常用英语单词
以下单词按照字母先后顺序排序:abstract 抽象abstract base class 抽象基类access 访问access control 访问控制adaptor 适配器aggregate 聚合algorithms 算法alias 别名ambiguous 二义性anonymous 匿名argument 实参array 实参array 数组assignment 赋值associative container 关联容器backslash 反斜杠base class 基类
2021-07-23 22:18:57 797
原创 Windows搭建基于EClipse的CppUTest单元测试环境
文章目录1. Cygwin介绍及下载2. 安装Cygwin2.1 安装2.2 配置 `Path`3. 编译CppUTest3.1 下载 CppUTest3.2 编译 CppUTest3.2 添加 *`CPPUTEST_HOME`* 到 `Path`4. 安装 `EClipse C/C++` 开发环境4.1 安装JDK4.2 下载 Eclipse IDE for C/C++ Developers4.3 设置工作区5. 创建 Cygwin C++工程5.1 新建默认工程5.2 添加自己的内容5.3 在 main
2021-07-18 01:01:16 1295 1
CppUTest eclipse-workspace.zip
2021-07-18
Qt 多线程使用串口源码下载
2020-12-26
Qt多线程例子、示例、三种方式使用多线程、源码下载
2020-12-24
Qt Qss三套样式文件 qss.zip
2020-10-19
Perl 5.28 + QtXlsx下载.zip
2020-06-22
cublas64_90.dll
2020-06-07
STM32CubeMX通过ESP8266 AT指令MQTT上阿里云物联网平台实践源代码
2020-05-25
QT QextSerialPort串口小工具源代码
2020-04-02
enigmavirtualbox_9.50.zip
2020-03-11
STM32CubeMX实现STM32 USBHID双向64字节通信(下位机部分)源代码.zip
2020-02-27
Qt_USB-HID_timer.zip
2020-02-27
stm32cubemx stm32f429 华为LiteOS工程
2020-01-21
stm32cubemx stm32f429 RT-Thread工程
2020-01-20
stm32cubemx stm32f429 UCOS-III工程
2020-01-20
stm32cubemx stm32f429 腾讯TencentOS tiny工程
2020-01-20
stm32cubemx stm32f429 FreeRTOS工程
2020-01-20
2019WIOTC世界物联网大会计划方案.pdf
2019-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人