自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 qt 读取硬件配置

1.主要使用利用wmic和QProcess来实现,QProcess获取wmic的执行结果,然后进行解析——————————————查询cpu信息:wmic cpu get DeviceID,name,NumberOfCores,NumberOfLogicalProcessors获取cpu名称:wmic cpu get Name查询cpu序列号:wmic cpu get processorid获取cpu核心数:wmic cpu get NumberOfCores获取cpu线程数:wmic cpu

2022-06-05 16:17:31 678 1

原创 qt+opengl QOpenglTexture

1.头文件#include 2.声明QOpenGLTexture *m_pTexture = nullptr;m_pTexture = new QOpenGLTexture(QImage(":/resc/texture/container.jpg").mirrored(true, true), QOpenGLTexture::GenerateMipMaps);3.paintgl部分m_pTexture->bind(0);m_shaderProgram.setUniformValue(“t

2022-02-18 13:57:49 485

原创 c++ primerplus 第六版课后习题 第八章

第一题#include <iostream>#include <fstream>#include <float.h>#include <array>#include <string.h>using namespace std;void show(char* a, int b = 0) { static int cnt = 0; cnt++; if (b == 0) { while (*a) {

2022-01-19 21:40:37 586

原创 c++ primerplus 第六版课后习题 第七章

第一题:#include <iostream>#include <fstream>#include <float.h>#include <array>double getAva(int x, int y) { return 2.0 * x * y / (x + y);}int main(){ using namespace std; int a, b; a = b = 1; while (1) {

2022-01-18 20:12:17 437

原创 leetcode 每日一题507完美数

思路:遍历求因子之和class Solution {public: bool checkPerfectNumber(int num) { if(num == 1){ return false; } int e = sqrt(num); int an = 0; for(int i = 2; i <= e; i ++){ if(num % i == 0){

2021-12-31 09:44:33 2839

原创 leetcode 每日一题 825适龄的朋友

思路:双指针加排序,排序之后中间的是一定可以,两边边界改变,注意的是如果两个人年纪一样,发出申请的数量也是一定一样,在这个条件之下,不考虑终点比起点小的情况。class Solution {public: static bool cmp(int a, int b){ return a > b; } int numFriendRequests(vector<int>& ages) { sort(ages.begin(),

2021-12-27 17:32:02 3302

原创 leetcode 每日一题 1154一年中的第几天

思路:主要就是注意的是,字符串到数字的转换,第二就是是否是闰年的条件。class Solution {public: int rui[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; int ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int dayOfYear(string date) { int l = date.size(); int cnt =

2021-12-21 19:05:37 77

原创 leetcode剑指offer II008和大于等于target的最短子数组

思路:双指针,如果sum >= target左进,否则右进class Solution {public: int minSubArrayLen(int target, vector<int>& nums) { int s = 0; int e = 0; int an = INT_MAX; int l = nums.size(); int sum = nums[0]; whil

2021-12-20 17:14:13 77

原创 leetcode剑指offerII007数组中和为0的三个数

思路:固定第一个数,双指针求答案,其中跳过重复的。class Solution {public: vector<int> num; int l; vector<vector<int>> an; vector<vector<int>> threeSum(vector<int>& nums) { sort(nums.begin(), nums.end()); num

2021-12-20 17:03:04 62

原创 leetcode 每日一题475供暖器

思路:寻找每个房子左边最近的供暖器和右边最近的供暖器,最后的答案就是每个房子离其最近的供暖器的距离的最大值class Solution {public: int findRadius(vector<int>& houses, vector<int>& heaters) { int l1,l2; l1 = houses.size(); l2 = heaters.size(); vector &l

2021-12-20 16:48:26 57

原创 leetcode 随机刷题记录113.路径总和II

思路:简单遍历,用栈记录一下路径就i行了。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr)

2021-12-17 15:58:48 63

原创 leetcode 62不同路径

思路:递推,到每个格子的路径等于上方格子的路径加左边格子的路径。class Solution {public: int uniquePaths(int m, int n) { vector <vector <int>> an; for(int i = 0; i < m; i++){ vector <int> temp; an.push_back(temp);

2021-12-17 15:44:10 42

原创 leetcode随机刷题记录 1328破坏回文串

思路:首先分之前是不是回文串,是的话,找到第一个能更改小的改,都不能就把最后改成b;不是回文串的话就分情况讨论,class Solution {public: int l; string breakPalindrome(string palindrome) { l = palindrome.size(); if(l <= 1){ return ""; } if(ifHui(palindrom

2021-12-17 14:23:29 111

原创 leetcode 随机刷题记录 剑指offer II014 字符串中的变味词

思路,滑动窗口,注意比较的是每一个窗口之中每个字母的出现次数和a一样就行了,不用管顺序class Solution {public: int timesA[26]; int timesB[26]; int l1, l2; bool checkInclusion(string s1, string s2) { memset(timesA, 0, sizeof(timesA)); memset(timesB, 0, sizeof(timesB)

2021-12-17 14:08:22 54

原创 leetcode 随机刷题记录 766托普利茨矩阵

思路,递推,每个数和它上一排左列的数比较(如果存在),有一次不满足返回法拉瑟,否则返回trueclass Solution {public: bool isToeplitzMatrix(vector<vector<int>>& matrix) { int l1,l2; l1 = matrix.size(); l2 = matrix[0].size(); for(int i = 0; i < l1

2021-12-17 13:59:06 54

原创 leetcode 剑指offer II003前n个数字二进制中1的个数

思路:递推,可以每一个数转换为二进制后最高位为1,那么这个数的1的个数等于这个数减去二进制最高位数的答案+1;class Solution {public: vector<int> countBits(int n) { vector <int> an; an.push_back(0); if(n == 0) return an; an.push_back(1); int

2021-12-17 13:54:47 60

原创 leetcode 剑指offer II002二进制加法

思路:一个简单的字符串模拟class Solution {public: string addBinary(string a, string b) { if(a == "0"){ return b; } if(b == "0"){ return a; } string an =""; int l1,l2; l1 = a.size();

2021-12-17 13:53:21 72

原创 leetcode 剑指offer刷题记录 II001整数除法

总体思路是类似快速幂的思想,每次让b不断的翻倍,直到a比b小为止,再重置B的值不停继续,直到a比重置后的b小为止。class Solution {public: int divide(int a, int b) { bool flag = false; long long x,y; x = a; if(a < 0){ flag = !flag; x = -x; }

2021-12-17 12:50:43 94

原创 leetcode 随机刷题记录剑指 offerII 070排序数组中只出现一次的数字

思路:由复杂度想到二分,对于每次二分,要考虑其奇偶性,即若是在其前方没有单独的数,则mid为偶数时应和后方数相同,奇数时和前方数相同,若是单独的数的坐标小于mid,则不同,再特判边界即可class Solution {public: int singleNonDuplicate(vector<int>& nums) { int l = nums.size(); int s = 0; int e; e = l -

2021-12-17 11:31:58 75

原创 leetcode 随机刷题记录1518换酒问题

思路:每次酒全部变空瓶,空瓶n瓶换1瓶,一个递推。class Solution {public: int numWaterBottles(int numBottles, int numExchange) { int an = 0; int emptyBottom = 0; while(numBottles > 0 || emptyBottom >= numExchange){ an += numBottles;

2021-12-17 09:31:51 63

原创 leetcode随机刷题记录 面试题17.06.2出现的次数

思路,每次只计算到了当前位的时候,当前位为2的时候有多少可能的数class Solution {public: int numberOf2sInRange(int n) { if(n < 2){ return 0; }else if(n <= 10){ return 1; } long long xl; long long xr; long

2021-12-15 17:48:55 4230

原创 剑指offer40最小的个数

思路,快速排序一下再输出最前面的几个数。class Solution {public: vector<int> getLeastNumbers(vector<int>& arr, int k) { sort(arr.begin(), arr.end()); vector<int> an; for(int i = 0; i < k; i++){ an.push_back(arr

2021-12-15 15:51:04 562

原创 leetcode 随机刷题记录 687最长同值路径

思路,从下往上遍历,注意,以当前值为根节点的最大值,是左子树加右子树,但是向上传值的时候,则是只能选择更大的一边的子树,否则不再是一条路径。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {

2021-12-15 15:42:42 703

原创 leetcode 每日一题 851喧闹和富有

思路,将题中给的数据转化为一棵树,越穷的在上面,一定比其富有的则是在其下方,找答案就是向下遍历一遍就是了。class Solution {public: struct human{ int q; int mostQuiet = -1; int mostQuietIndex = -1; vector <int> richer1; }; vector <human> nums; int l

2021-12-15 15:24:39 393

原创 leetcode随机刷题记录 462 最少移动次数使数组元素相等II

思路:首先可以肯定是两边元素相中间移动,思考后得知移动到中位数的时候次数最少。class Solution {public: int minMoves2(vector<int>& nums) { int l = nums.size(); sort(nums.begin(), nums.end()); int l1 = l / 2; int an = 0; for(int i = 0; i <

2021-12-14 17:19:22 1638

原创 leetcode随机刷题记录 718最长重复子数组

思路:动态规划an[i][j] = 数组一第i个数和数组二第j个数的最长公共前缀,如果nums1[i] == nums2[j],那么an[i][j] 等于an[i-1][j-1] + 1;否则等于0,找到其中最大的即可class Solution {public: vector<vector <int>> an; int findLength(vector<int>& nums1, vector<int>& nums2)

2021-12-14 16:57:59 41

原创 leetcode每日一题 630课程表II

思路:首先做距离deadline最近的,如果完成不了,则把之前包括现在这个之中时间最长的弹出去,直到保证能完成为止。class Solution {public: struct course{ int deadLine; int needTime; }; vector <course> nums; priority_queue<int> times; int l; static bool cmp(co

2021-12-14 12:57:57 1304

原创 leetcode随机刷题记录 236. 3的幂

思路:公式题:log10(3^n) == n * log10(3)class Solution {public: bool isPowerOfThree(int n) { for(int i = 0; i < 32; i++){ if(i * log10(3) > log10(n)){ return false; } if(i * log10(3) == log

2021-12-13 17:52:03 161

原创 leetcode随机刷题记录 剑指offer 2 082含有重复元素集合的组合

思路,dfs加剪枝,暴力做的勉强过了class Solution {public: stack <int> s; int tar; int l; vector <int> nums; vector<vector<int>> an; vector<vector<int>> combinationSum2(vector<int>& candidates, int tar

2021-12-13 17:12:41 151

原创 leetcode随机刷题记录 1824最少侧跳次数

思路:简单递推,到每个节点,将自己前一个值,和别的路的值+1相比较,得最小值,有障碍的时候默认最大值就行了。class Solution {public: int minSideJumps(vector<int>& obstacles) { int l = obstacles.size(); int a,b,c; a = 1; c = 1; b = 0; for(int i =

2021-12-13 16:54:09 222 1

原创 leetcode每日一题面试题16.01交换数字

思路:可以很轻松的想到,假设两数a,b有以下两种方法。a = a + b;b = a - b;a = a - b;或者a = a - b;b = a + b;a = -1 * (a - b);这题主要考点是不要超出int界限,所以根据正负不同灵活选择。class Solution {public: vector<int> swapNumbers(vector<int>& numbers) { if((numbers[0] &gt

2021-12-13 16:33:19 73

原创 leetcode每日一题 911在线选举

思路:主要是预处理,记录一个当前时刻最大值,遍历times数组,得到每个时刻的领先人,方法是记录一个当前的最大值,比较当前时刻得票人和之前领先人的得票数就行了,最后二分查找要求的时刻之前的那个投票时刻的领先人。class TopVotedCandidate {public: int ticket[5005]; //票数 int late[5005]; //下标为i的人最近一次得票的时间。 vector <int> an; vector <int&

2021-12-11 20:31:29 613

原创 leetcode随机刷题记录 1456定长子串中元音的最大数目

思路:滑动窗口,从第一个可行的开始往右滑,左边界是则数目–,右边界的右边是则数目++,每次滑动之后和an比较大小代码:class Solution {public: int maxVowels(string s, int k) { int l = s.size(); int last = 0; int first = 0; int now = 0; int an = 0; for(int i = 0

2021-12-10 17:42:28 359

原创 leetcode随机刷题记录 238除自身以外数组的乘积

思路:两次预处理,分别从头到尾和从尾到头记录从边界到该数前的乘积,最后左边乘积乘上右边乘积即为该数的答案。class Solution {public: vector <long long >before; vector <long long >after; vector<int> productExceptSelf(vector<int>& nums) { int l = nums.size();

2021-12-10 17:31:04 60

原创 leetcode随机刷题记录 515在每个树行中找最大值

思路:简单题,遍历树,和对应的层数中的最大值比较就行了,具体看代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), l

2021-12-10 17:14:21 45

原创 leetcode 随机刷题记录 1171从链表中删去总和值为零的连续节点

思路:遍历得到前缀和,前缀和相等的就可以删除,得到前后对照的表,右边越右越好,从左往右再遍历,遇到对应的直接跳转,写的挺垃圾的,大家看个乐/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next

2021-12-10 17:06:51 276

原创 leetcode 随机刷题记录 739每日温度

思路:单调队列,详见239题class Solution {public: vector<int> dailyTemperatures(vector<int>& temperatures) { vector <int> win; vector <int> an; an = temperatures; int l = temperatures.size(); in

2021-12-10 16:07:42 63

原创 leetcode 随机刷题记录 1696跳跃游戏

思路:单调队列,完成此题前请完成239题本题唯一区别是要改变自身值,class Solution {public: int maxResult(vector<int>& nums, int k) { vector <int> win; int l = nums.size(); int first = 0; int last = -1; for(int i = 0; i <

2021-12-10 15:52:36 2381

原创 leetcode随机刷题记录239滑动窗口最大值

思路:单调队列。用队列win来存储目前所有 可能 有帮助的值。无帮助值的特点1.如果队内某数坐标小于当前,且值也小于则一定没用,出队。(队尾)2.如果某数坐标已经小于当前值左边界限,那么随着向右遍历,则一定没用,出队(队头);由此得到单调队列的特点1.值从大到小。2.只有有效值。实现方法:1.删除每一个当前的队尾直到队尾>当前值或者队空, 最后队尾添加当前值。2.删除队头直到队头坐标符合条件。class Solution {public: vector<int&g

2021-12-10 15:02:43 163

原创 leetcode 每日一题 748最短补全词

思路:先计算前面每个字母出现的次数,和后面每个词每个字母出现的每个字母相比较,一旦前面多则不符合条件。如前面有2个s,后面补全词里s只出现一次则不满足。最后记录最先出现的,长度最短的补全词输出即可。class Solution {public: int valueA[26]; int valueB[26]; string shortestCompletingWord(string licensePlate, vector<string>& words) {

2021-12-10 11:46:54 434

空空如也

空空如也

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

TA关注的人

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