自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 QT中如何正确的修改部件的标题

问题的来由:在学习QT的过程中,发现如果在自己创建的Widgt对象中,直接通过成员函数SetWindowTitle(“XXX”)来修改部件标题时,无法成功。涉及的相关知识点总结QT系统提供的标准类名声明头文件没有.h后缀QT一个类对应一个头文件,类名就是头文件名main函数中QApplication应用程序类的作用:a. 管理图形用户界面应用程序的控制流和主要设置b. 是QT整个后台管理的命脉,它包含主事件循环,在其中包含来自窗口系统和其他资源的所有事件的调度和处理。它也处理应用程序的初始化

2022-02-20 15:02:40 1017

原创 C/C++中二维数组作为形参传递参数

`param1`为二维数组,在函数`void total_score_of_each_stu(param1, param2, param3,param4)`中该以怎样的形参形式去接收函数调用时实参传递的参数?

2021-11-27 20:55:45 3629

转载 VS调试快捷键记录

设置/取消断点:F9开始/继续调试:F5逐语句(执行当前层次的内层的语句):F8 / F11逐过程(执行当前层次的语句):(shift+F8) / F10逐层跳出内层次:(ctrl+shift+F8)监视变量:(shift+F9)

2021-09-19 19:31:49 535

原创 LeetCode11:盛最多水的容器

C语言 — 暴力解法/**@algorithm description: Violent solution@steps: Iterates through all binary combinations of array elements@Time complexity of the algorithm: O(N^2)@Spatial complexity of the algorithm: O(1)**/#include <stdio.h>#include <std

2021-09-17 09:28:02 141

原创 LeetCode16:最接近的三数之和

题目描述给定一个包括 n 个整数的数组nums和 一个目标值target。找出 nums中的三个整数,使得它们的和与 target最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。C实现1–(冒泡排序+双指针)/**@algorithm description:LeetCode16: 最接近的三数之和step1: 对输入的数组

2021-09-15 10:07:03 136

原创 面试题43: 1~N整数中1出现的次数

方法一:/**@algorithm description:统计1~N中所有数中1出现的次数的算法:step1: 遍历1~N中的所有数字step2: 对每一个数字的每一位是否位1进行检查@Time complexity of the algorithm: O(nlogn)@Spatial complexity of the algorithm: NA**/#include <stdio.h>#include <stdlib.h>/**@function:

2021-09-12 15:38:18 97

原创 辛烷值预测,随机森林

#!/user/bin/env python# -*- coding:utf-8 -*-#@Time : 2021/9/7 13:32#@Author : Cohen#@File : RandomForest2.pyimport numpy as npimport urllib.requestfrom sklearn.model_selection import train_test_splitfrom sklearn import ensemblefrom sklea

2021-09-09 10:18:23 372 1

原创 Python随机森林回归学习(红酒评价回归实例)

#!/user/bin/env python# -*- coding:utf-8 -*-#@Time : 2021/9/7 20:08#@Author : Cohen#@File : RandomForestRegression1.py# -*- coding:utf-8 -*-import numpyimport urllib.requestfrom sklearn.model_selection import train_test_splitfrom sklearn

2021-09-07 21:43:50 1483

原创 Python随机森林代码(导入数据,用于二分类和多分类问题)

#!/user/bin/env python# -*- coding:utf-8 -*-#@Time : 2021/9/7 13:32#@Author : Cohen#@File : RandomForest2.pyfrom typing import Anyimport pandas as pdimport numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemb

2021-09-07 19:29:29 6471 2

原创 gitlab提交代码到远程仓库,产生冲突的解决办法

1、切换到开发的主分支git checkout 主分支名2、本地主分支同步远程主分支git pull or git fetch3、切回到自己的私有分支git checkout 私有分支名4、将私有分支与更新的主分支合并git merge 主分支名5、手动解决显示的未能自动合并的冲突利用IDE,找到相应的冲突源文件以及冲突位置,手动解决相应位置的冲突6、分别执行下列指令,重新提交私有分支到远程仓库git add .git commit git push我是cohen

2021-08-31 18:05:29 1182

原创 C语言知识点复习总结【一】

#include<>与#include的区别< >表示系统直接按系统指定的目录检索" "表示进系统在“ ”指定的路径(没有路径代表当前路 径)查找头文件,如果找不到,再按系统指定的目录检索system函数#include <stdlib.h>int system(const char *command); 功能:在已经运行的程序中执行另外一个外部程序 参数:外部可执行程序名字 返回值: 成功:0 失败:任意数字C语言编译步骤1、预处理:宏

2021-07-24 23:30:47 149

原创 LeetCode刷题 | 二叉树的最大深度

题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子结点的最长路径上的结点数示例给定二叉树 [3,9,20,null,null,15,7]返回它的最大深度 3解法一:深度优先遍历int maxDepth(struct TreeNode* root){ if(root == NULL) return 0; int leftHeight = maxDepth(root->left); int rightHeight = m

2021-04-01 20:40:34 140

原创 LeetCode刷题 | 将数组中的大写字母转换成小写字母

题目描述实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例输入: “Hello”输出: “hello”知识点回顾A-Z的ASCII值为65~90a-z的ASCII值为97~122代码示例char * toLowerCase(char * str){ int i = 0; while(str[i] != '\0') { if(str[i] <= 90

2021-03-31 21:45:07 1338

原创 LeetCode | 替换字符串数组中的空格

题目描述请实现一个函数,把字符串s中的每个空格替换成“%20”示例输入:s = “We are happy.”输出:“We%20are%20happy.”解法一char* replaceSpace(char* s){ char * ret = (char *)malloc((strlen(s) *3 + 1) * sizeof(char)); int i = 0; int j = 0; while(s[i] != '\0') {

2021-03-31 21:17:28 251

原创 面试题

//第一步对输入的字符串转换成整形数组//对整形数组进行选择或者冒泡排序//按要求写出打印后排序数组的方法#define _CRT_SECURE_NO_WARNINGS#include<iostream>#include <string>using namespace std;void CharToInt(char * Cards, int *IntCard){ char CardIndex[14] = { '0','2', '3','4','5', '6',

2021-03-29 10:15:18 92

原创 LeetCode刷题 | 唯一摩尔斯密码词

题目描述国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-”, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[".-","-…","-.-.","-…",".","…-.","–.","…","…",".—","-.-",".-…","–","-.","—",".–.","–.-",".-.","…","-","…-","…-",".–","-…-","-.–","–

2021-03-28 21:37:30 148

原创 LeetCode刷题 | 数组拆分I

题目描述给定长度为 2n 的整数数组 nums ,你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得从 1 到 n 的 min(ai, bi) 总和最大。返回该 最大总和 。示例输入:nums = [1,4,3,2]输出:4解释:所有可能的分法(忽略元素顺序)为:(1, 4), (2, 3) -> min(1, 4) + min(2, 3) = 1 + 2 = 3(1, 3), (2, 4) -> min(1, 3)

2021-03-28 20:59:32 280

原创 LeetCode刷题 | 数组中两元素的最大乘积

题目描述给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。请你计算并返回该式的最大值。示例输入:nums = [3,4,5,2]输出:12解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12 。解法一class Solution {public: int maxProduct(vect

2021-03-28 20:35:20 202

原创 LeetCode刷题 | 数组中所有唯一元素的和

题目描述给定一个整数数组nums。数组中唯一元素是指那些只出现一次的元素,请返回数组中所有唯一元素的和暴力解法思路:用一个数组维护标记所有仅出现一次的元素代码示例:class Solution {public: int sumOfUnique(vector<int>& nums) { //暴力解法,维护一个数组,记录1-100中所有数字出现的次数 int ret[101] = { 0 }; int sum = 0; int len

2021-03-22 22:32:49 524

原创 Leetcode刷题 | 返回单向链表中倒数第k个结点

题目描述实现一种算法,找出单向链表中倒数第k个结点,返回该结点的值解法一:思路:遍历两次链表实现,第一次遍历链表是统计出链表结点的个数len,第二次比遍历链表让自定义的结点指针从开始移动len - k +1次,即找到了单向链表的倒数第k个结点代码示例:int kthToLast(struct ListNode* head, int k){ //遍历两遍来两遍链表实现函数功能 //第一次遍历,统计单向链表中结点的个数 int len = 0; struct

2021-03-22 21:45:11 282

原创 Linux系统编程 | 信号

信号的机制进程A给进程B发送信号,进程B收到信号之前执行自己的代码,收到信号之后,不管执行到到程序的什么位置,都要暂停运行,去处理信号,处理完毕之后再继续执行原来的程序。与硬件中断类似,它是一种异步模式。但是信号是在软件层面上是实现的中断,早期通常被称为“软中断”。每个进程收到的所有信号,都是由内核负责发送的进程A给进程B发送信号示意图:信号的状态信号有三种状态:产生、未决和递达信号的产生方式有一下几种情况:1、按键产生,如Ctrl +c、Ctrl+z、Ctrl + \2、系统调用产生,

2021-03-21 13:58:22 189

原创 Linux系统编程 | 进程间的通信

什么是进程间通信Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷贝到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC, InterProcess Communication)图解:常用的进程间通信方式1、管道(使用最简单)2、信号(开销最小)3、共享映射区(无血缘关系)4、本地套接字

2021-03-19 15:59:09 197

原创 Linux系统编程 | 进程控制

程序和进程程序:程序是指编译好的二进制文件,在磁盘上,占用磁盘空间,是一个静态的概念进程:进程是一个启动的程序,进程占用的是系统资源,如:物理内存、CUP、终端等,是一个动态的概念并行和并发并发:指的是在同一个时间段内,在同一个CPU上,同时运行多个程序,CPU将时间分成时间片,每个进程执行完一个时间片必须无条件的让出CPU使用权。并行:指的是两个或者两个以上的程序在同一时刻发生(需要有多核)PCB-进程控制块说明:每个进程在内核中都有一个进程控制块PCB来维护进程相关的信息,Linux内

2021-03-18 15:14:31 137

原创 Linux系统编程 | 文件操作和目录操作续2

dup函数函数描述:复制文件描述符函数原型:int dup(int oldfd);函数参数: oldfd要复制的文件描述符函数返回值:成功:返回最小且没有被占用的文件描述符失败:返回-1,设置errno值代码示例://测试dup函数复制文件描述符#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <uni

2021-03-18 09:22:38 87

原创 Linux系统编程 | 文件和目录操作续1

perror和errnoerrno是一个全局变量,当系统调用后若出错会将errno值进行设置,perror可以将errno对应的描述信息打印出来阻塞和非阻塞1、普通文件默认是非阻塞的2、终端设备默认是阻塞的3、管道和套接字文件默认是阻塞的问题:阻塞和非阻塞是文件的属性海事read函数的属性?答:阻塞和非阻塞是文件本身的属性,不是read函数的属性。代码示例:文件和目录文件和目录操作相关函数stat/lstat函数函数描述:获取文件属性函数原型:函数返回值:成功返回0,

2021-03-16 21:35:22 131

原创 Linux系统编程 | 文件操作

什么是系统调用系统调用是由操作系统实现并提供给外部应用程序的编程接口(API),是应用程序和系统之间数据交互的桥梁文件描述符一个进程启动之后,默认打开三个文件描述符说明:新打开文件返回文件描述符表中未使用的最小文件描述符,调用open函数可以打开或者创建一个文件,得到一个文件描述符open函数函数描述:打开或者创建一个文件函数原型:函数参数1、pathname参数是要打开或创建的文件名,和fopen一样, pathname既可以是相对路径也可以是绝对路径2、flags参数有一系列常数

2021-03-15 22:36:50 213

原创 LeetCode刷题 | 1768交替合并字符串

题目描述给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。示例输入:word1 = “abc”, word2 = “pqr”输出:“apbqcr”解释:字符串合并情况如下所示:word1: a b cword2: p q r合并后: a p b q c r代码示例char * mergeAlternately(char * wor

2021-03-10 20:23:19 160

原创 Linux网络编程 | “wrap.c“代码 | 一些系统调用函数的进一步封装

"wrap.c"代码示例#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <errno.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#include <strings.h>void perr_exit(const char *s

2021-03-05 18:54:48 609

原创 Linux系统编程 | Makefile 、GDB、文件I/O

makefie的基本规则目标: 依赖(tab)命令Makefile基本规则三要素:目标:要生成的目标文件依赖:目标文件由那些文件生成命令:通过执行该命令由依赖文件生成目标文件第一个版本:代码示例:main:main.c fun1.c fun2.c sum.c gcc -o main main.c fun1.c fun2.c sum.c -I./缺点:效率低,修改一个文件,所有的文件会全部重新编译第二个版本:代码示例:main:main.o fun1.o fun2.o su

2021-03-04 20:51:18 133 1

原创 Linux网络编程 | 服务端开发流程代码示例

1 //服务端程序 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 #include <sys/types.h> 6 #include <unistd.h> 7 #include <arpa/inet.h> 8 #include <netinet/in.h> 9 #include <ctype.h&gt

2021-02-23 23:20:47 145

原创 Linux系统编程 | 使用条件变量实现生产者和消费者模型

代码示例 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <pthread.h> typedef struct node { int data; struct node *

2021-02-15 23:31:59 127

原创 【实习面试】问题归纳总结

问题一:介绍一下C++中的const关键字1、const修饰变量若一个变量前用const修饰,就意味着该变量的值是可以被访问的,但是不能被修改,即该变量是只读的。注意:const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了。2、const修饰指针常量指针:int a = 5;int b = 6;const int * p = &a; //*p = b; //错误,指针指向的内容不可以修改p = &b; //指针的指向可以更改,也就是指针可以指向其

2021-02-10 22:22:58 106

原创 Linux系统编程作业|守护进程

知识点回顾进程组和会话:进程组:一个进程组包含多个进程会话:多个组组成一个会话注意点:1、创建会话的进程不能是组长进程2、一般创建会话是父进程先fork子进程,然后父进程退出,让子进程调用setsid函数3、创建一个会话,这个子进程既是会长也是组长;4、只要是创建了会话,这个进程就脱离了控制终端的影响创建守护进程模型:1、父进程fork子进程,然后父进程退出。目的是:子进程肯定不是组长进程,为后续调用setsid函数提供了条件。2、子进程调用setsid函数创建一个新的会话a、该子进

2021-02-09 22:45:59 267

原创 vim编辑器中给代码添加行号

两种方法方法一:暂时性添加/取消行号使用vim打开文件后,在Normal模式下输入:set number(或 :set nu)显示行号:set nonumber(或 :set nonu)取消行号方法二:永久性显示行号查找vim设定文件sudo find / -name vimrc首先切换到root用户sudo root修改vim设定文件 /etc/vimrc,,末尾添加set number(或 set nu)保存退出即可。...

2021-02-09 22:10:48 4031 1

原创 【五】 C语言基础知识学习回顾 | 一篇搞定C语言基础 | 内附详细代码以及注释

一 、C语言学习第一天1.1 编写C语言代码:hello.c#include<stdio.h>#include<stdlib.h> //调用system系统函数需要包含的头文件int main(){ printf("hello world\n"); system("pause"); return 0;}解决在运行程序的时候,黑窗口一闪而过的方法1、通过system()函数解决,在return 0之前,添加system(“pause”);函数调用2、借助

2020-12-17 15:45:21 3209

原创 【Leetcode刷题】 1588 所有奇数长度子数组的和

【题目描述】给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[1,4,2,5,3] = 15我们将所有值求和得到 1 + 4 + 2 +

2020-12-03 15:04:18 209

原创 【Leetcode刷题】 1290 二进制链表转整数

【题目描述】给你一个单链表的引用结点 head。链表中每个结点的值不是 0 就是 1。已知此链表是一个整数数字的二进制表示形式。请你返回该链表所表示数字的十进制值示例输入:head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0]输出:18880解法一解法二思路由于链表中从高位到低位存放了数字的二进制表示,因此我们可以使用二进制转十进制的方法,在遍历一遍链表的同时得到数字的十进制值。题解中的是运用了反向运算操作,我们在获得二进制的时候是除于2取余数,要计算被

2020-12-02 20:31:44 215

原创 【LeetCode刷题】 1572 矩阵对角线元素的和

【题目描述】给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和输入:mat = [[1,2,3],[4,5,6],[7,8,9]]输出:25解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25请注意,元素 mat[1][1] = 5 只会被计算一次。解法一解法二思路遍历整个矩阵,如果当前坐标 (i, j) 满足 i = j 或者 i + j = n - 1,就把当前的数字加入到答案中复杂度

2020-12-02 19:07:57 289

原创 【Leetcode刷题】 1295.统计位数为偶数的数字

【题目描述】给你一个整数数组 nums,请你返回其中位数为 偶数 的数字的个数示例输入:nums = [12,345,2,6,7896]输出:2解释:12 是 2 位数字(位数为偶数)345 是 3 位数字(位数为奇数)2 是 1 位数字(位数为奇数)6 是 1 位数字 位数为奇数)7896 是 4 位数字(位数为偶数)因此只有 12 和 7896 是位数为偶数的数字解法一解法二思路我们枚举数组 nums 中的整数,并依次判断每个整数 x 是否包含偶数个数字。一种简

2020-12-01 21:53:42 228

原创 【Leetcode刷题】 1266.访问所有点的最短时间

【题目描述】平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。你可以按照下面的规则在平面上移动:每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。必须按照数组中出现的顺序来访问这些点【示例1】输入:points = [[1,1],[3,4],[-1,0]]输出:7解释:一条最佳的访问路径是: [1,1] -> [2,2] ->

2020-12-01 21:04:38 477

空空如也

空空如也

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

TA关注的人

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