自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 Python 实现二维码的转换

python实现二维码转换

2022-09-26 21:53:29 120

原创 【LeetCode 679】24点游戏

给定一个长度为4的整数数组 cards。你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字。您应该使用运算符 [‘+’, ‘-’, ‘*’, ‘/’] 和括号 ‘(’ 和 ‘)’ 将这些卡片上的数字排列成数学表达式,以获得值24。如果可以得到这样的表达式,其计算结果为 24 ,则返回 true ,否则返回 false。来源:力扣(LeetCode)

2022-09-20 16:30:25 425

原创 【LeetCode 6182 反转二叉树的奇数层】

给你一棵 完美 二叉树的根节点 root ,请你反转这棵树中每个 奇数 层的节点值。反转后,返回树的根节点。完美 二叉树需满足:二叉树的所有父节点都有两个子节点,且所有叶子节点都在同一层。节点的 层数 等于该节点到根节点之间的边数。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/reverse-odd-levels-of-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2022-09-18 21:01:27 333

原创 C++学习——位操作

C++基础操作之位运算。

2022-08-06 17:31:59 210

原创 【LeetCode6085 道路的最大总重要性】双周赛

题目描述给你一个整数 n ,表示一个国家里的城市数目。城市编号为 0 到 n - 1 。给你一个二维整数数组 roads ,其中 roads[i] = [ai, bi] 表示城市 ai 和 bi 之间有一条 双向 道路。你需要给每个城市安排一个从 1 到 n 之间的整数值,且每个值只能被使用 一次 。道路的 重要性 定义为这条道路连接的两座城市数值 之和 。请你返回在最优安排下,所有道路重要性 之和 最大 为多少。提示2 <= n <= 5 * 1041 <= roads

2022-05-29 00:33:12 32 1

原创 【LeetCode6084 最多单词数的发件人】双周赛

题目描述给你一个聊天记录,共包含 n 条信息。给你两个字符串数组 messages 和 senders ,其中 messages[i] 是 senders[i] 发出的一条 信息 。一条 信息 是若干用单个空格连接的 单词 ,信息开头和结尾不会有多余空格。发件人的 单词计数 是这个发件人总共发出的 单词数 。注意,一个发件人可能会发出多于一条信息。请你返回发出单词数 最多 的发件人名字。如果有多个发件人发出最多单词数,请你返回 字典序 最大的名字。注意:字典序里,大写字母小于小写字母。“Ali

2022-05-29 00:00:49 1053 1

原创 【LeetCode 6076(周赛)】表示一个折线图的最少线段数

题目描述给你一个二维整数数组 stockPrices ,其中 stockPrices[i] = [dayi, pricei] 表示股票在 dayi 的价格为 pricei 。折线图 是一个二维平面上的若干个点组成的图,横坐标表示日期,纵坐标表示价格,折线图由相邻的点连接而成。比方说下图是一个例子:题目连接来源:力扣(LeetCode)链接:https://leetcode.cn/problems/minimum-lines-to-represent-a-line-chart著作权归领扣网络所有。商

2022-05-22 12:50:08 824 4

原创 【LeetCode 6067 】分割数组的方案数(动态规划)

题目描述给你一个下标从 0 开始长度为 n 的整数数组 nums 。如果以下描述为真,那么 nums 在下标 i 处有一个 合法的分割 :前 i + 1 个元素的和 大于等于 剩下的 n - i - 1 个元素的和。下标 i 的右边 至少有一个 元素,也就是说下标 i 满足 0 <= i < n - 1 。请你返回 nums 中的 合法分割 方案数。示例1:输入:nums = [10,4,-8,7]输出:2解释:总共有 3 种不同的方案可以将 nums 分割成两个非空的部分

2022-05-15 00:00:57 97 1

原创 C++ 最小公倍数和最大公约数

最小公倍数和最大公约数参考博客连接两者之间的关系x和y的最小公倍数和最大公约数的关系X*Y = 最小公倍数 * 最大公约数求最大公约数1.辗转相除法int test(int x,int y){ while(x%y!=0){ int z=x; x=y; y=z%y; } return y;}2.暴力int test1(int x,int y){ int ans=1; for(int i=1;i<=x;i++) if(y%i==0 && x

2022-05-14 11:54:08 184 2

原创 【LeetCode 6057】 统计值等于子树平均值的节点数(周赛)

题目描述给你一棵二叉树的根节点 root ,找出并返回满足要求的节点数,要求节点的值等于其 子树 中值的 平均值 。注意:n 个元素的平均值可以由 n 个元素 求和 然后再除以 n ,并 向下舍入 到最近的整数。root 的 子树 由 root 和它的所有后代组成。示例1输入:root = [4,8,5,0,1,null,6]输出:5解释:对值为 4 的节点:子树的平均值 (4 + 8 + 5 + 0 + 1 + 6) / 6 = 24 / 6 = 4 。对值为 5 的节点:子树的

2022-05-08 12:13:44 71 1

原创 【LeetCode 541】反转字符串 II

题目描述给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-string-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。示例1:输入:s = "ab

2022-05-07 02:32:41 14

原创 【QT】QT实现TCP通信

QT中的TCP通信原理及实现(如果看着繁琐,可直接定位到文章末尾,有源码连接)QT中可以通过TCP协议让服务器和客户端之间行通信。服务器和客户端的具体流程:A、服务器: 1.创建QTcpServer对象 2.启动服务器(监听)调用成员方法listen(QHostAddress::Any,端口号) 3.当有客户端链接时候会发送newConnection信号,触发槽函数接受链接(得到一个与客户端通信的套接字QTcpSocket) 4.QTcpsocket发送数据用

2022-05-07 01:58:20 4057 5

原创 【QT】QT中文件的读写操作(UI界面)

利用UI简单的创建一个文件读写的窗口。UI界面如图所示:read和write是两个按钮(按钮名称br和bw),下面是一个文本编辑区。read按钮的槽函数(自动生成的槽函数 read -> 右击 -> 转到槽 -> clicked() -> ok)void Widget::on_br_clicked()//read的槽函数{ //文件对话框 QString path=QFileDialog::getOpenFileName(this,"OPEN","../"

2022-05-04 21:13:34 589 2

原创 【LeetCode 6052 】最小平均差

题目描述给你一个下标从 0 开始长度为 n 的整数数组 nums 。下标 i 处的 平均差 指的是 nums 中 前 i + 1 个元素平均值和 后 n - i - 1 个元素平均值的 绝对差 。两个平均值都需要 向下取整 到最近的整数。请你返回产生 最小平均差 的下标。如果有多个下标最小平均差相等,请你返回 最小 的一个下标。注意:两个数的 绝对差 是两者差的绝对值。n 个元素的平均值是 n 个元素之 和 除以(整数除法) n 。0 个元素的平均值视为 0 。来源:力扣(LeetCod

2022-05-01 22:51:45 122 1

原创 C++ 实现即时通信软件(直接运行)

题目由于本学期上了网络编程课程,老师要求写使用Socke实现网络编程。于是参考 C++多线程实现即时通信软件 写出了简单版本的没有界面的即时通信软件。软件:VS直接上代码,需要讲解原理的,可以参考 C++多线程实现即时通信软件服务器端//TcpServer_plus.exe#include<stdio.h>#include <Winsock2.h>#include<WS2tcpip.h>#pragma comment(lib,"ws2_32.lib")

2022-04-26 00:02:29 3477 1

原创 Python实现文件复制

将几行文本写入TXT文件。 然后编写一个函数,将第一个文件的内容“复制”到一个新文件中。def copyfile(f1,f2): content=f1.read() f2.write(content) f1.close()#关闭文件 f2.close() return ;#1.写入信息message ="Hello"file1=open('test1.txt',mode='w',encoding='utf-8')#打开所需要写入的test1.txt文本fi

2022-04-25 02:15:25 3431 1

原创 【LeetCode 150 】逆波兰表达式求值

题目描述根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。注意 两个整数之间的除法只保留整数部分。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处

2022-04-20 11:02:54 162 2

原创 【LeetCode 19】删除链表的倒数第 N 个结点

题目描述给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]进阶: 你能尝试使用一趟扫描实现吗?解题思路1.遍历两次,第一次记录倒数第N个位置在链表中的正序的位置。但是遍历了两次链表。ListNode* removeNthFromEnd(List

2022-04-17 23:32:05 14

原创 【LeetCode 59】螺旋矩阵 II

题目描述给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。示例 1:输入:n = 3输出:[[1,2,3],[8,9,4],[7,6,5]]思路这道题的思路与之前我写的 螺旋矩阵 的解题思路一致,读者可以直接看 螺旋矩阵 的解题思路。前者的适用与任何矩阵(行列数可以不相等),这个要求的是方阵(行列数相等),属于前者的特殊情况。vector<vector<int>> generateMat

2022-04-17 01:47:37 590 1

原创 【LeetCode 54 】螺旋矩阵

题目描述给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例 1 :输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2 :输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]思路分别使用up、down、left、right来表示矩阵的边界遍历的顺序1.左

2022-04-17 01:19:36 134 1

原创 【LeetCode 11 】盛最多水的容器(C++)

题目描述给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例 1输入:[1,8,6,2,5,4,8,3,7]输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例 2输入:height

2022-04-10 20:09:21 130 1

原创 【LeetCode 8 】(c++)字符串转换整数 (atoi)

题目描述请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。函数 myAtoi(string s) 的算法如下:List item读入字符串并丢弃无用的前导空格检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。将前面步骤读入的这些数字

2022-04-09 16:19:10 57

原创 【LeetCode 459 】重复的子字符串

题目描述给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。示例 1输入: s = "abab"输出: true解释: 可由子串 "ab" 重复两次构成。示例 2输入: s = "aba"输出: false示例 3输入: s = "abcabcabcabc"输出: true解释: 可由子串 "abc" 重复四次构成。 (或子串 "abcabc" 重复两次构成。)简单题我重拳出击,这道题一开始准备利用暴力的方法去做,但是感觉是简单题,我想着是一定有巧妙的解题

2022-04-09 02:02:35 565 1

原创 【LeetCode 6】Z 字形变换

题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。(出题的人指定有点问题奥,明明是 И 字形变换,非要说成Z)比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。请你实现这个将字符串进行指定行数变换的函数:string convert(string

2022-04-07 00:25:53 218

原创 【LeetCode 954】二倍数对数组

题目描述给定一个长度为偶数的整数数组 arr,只有对 arr 进行重组后可以满足 “对于每个 0 <= i < len(arr) / 2,都有 arr[2 * i + 1] = 2 * arr[2 * i]” 时,返回 true;否则,返回 false。示例 1输入:arr = [3,1,3,6]输出:false示例 2输入:arr = [2,1,2,6]输出:false示例 3输入:arr = [4,-2,2,-4]输出:true解释:可以用 [-2,-4] 和 [2

2022-04-01 16:40:01 4122

原创 【LeetCode 401】二进制手表

题目描述二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。例如,下面的二进制手表读取 “3:25” 。给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。小时不会以零开头:例如,"01:00" 是无效的时间,正确的写法应该是 "1:00" 。分钟必须由两位数组成,可能会以零开头:例如,"10:2" 是无

2022-04-01 14:17:41 38

原创 【LeetCode 383】赎金信

题目介绍给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例1输入:ransomNote = "a", magazine = "b"输出:false示例2输入:ransomNote = "aa", magazine = "ab"输出:false示例3输入:ransomNote

2022-04-01 01:53:35 242

原创 【LeetCode 350】两个数组的交集 II

题目描述    给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例1输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例2输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]提示1 <= nums1.length,

2022-04-01 00:00:01 92

原创 【LeetCode 290】单词规律

题目描述    给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。    这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。示例1输入: pattern = "abba", str = "dog cat cat dog"输出: true示例 2输入:pattern = "abba", str = "d

2022-03-30 10:41:59 92

原创 【LeetCode 228】汇总区间

题目描述  给定一个 无重复元素 的 有序 整数数组 nums 。返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。列表中的每个区间范围 [a,b] 应该按如下格式输出: 1. "a->b" ,如果 a != b 2. "a" ,如果 a == b示例1:输入:nums = [0,1,2,4,5,7]输出:["0->2","4-&g

2022-03-28 13:22:07 5244

原创 【LeetCode 202】快乐数

题目描述  快乐数 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例1输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1示例2输入:n = 2输出:false

2022-03-25 01:41:07 595

原创 【LeetCode217】存在重复元素

存在重复元素Q: 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。例子输入:nums = [1,2,3,1]输出:true输入:nums = [1,2,3,4]输出:false输入:nums = [1,1,1,3,3,4,3,2,4,2]输出:true       两种思路,一是利用排序的方法,时间复杂度O(n);二是哈希表,时间复杂度O(N)作为算法初学者,

2022-03-23 23:36:26 229

原创 【LeetCode169】多数元素

题目描述给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。数组是非空的,并且给定的数组总是存在多数元素。示例1:输入:[3,2,3]输出:3示例2:输入:[2,2,1,1,1,2,2]输出:2解题思路  这道题有两种解决办法,但是两种的时间复杂度相差一个数量级,读者应该好好比较两种方法之间的不同,尤其是第二种方法的精妙之处。 方法1:利用排序的思想这个想法是大多数人都能想到的,也是代码行数最少的,但是会利用到STL标准模板

2022-03-18 00:54:12 734

原创 [C++]Vector实现杨辉三角

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。简单分析可得规律:除了行首尾的两个1以外,第i行第j个数=第i-1行第j-1个数+第i-1行第j个数(i>2),即a[i][i]=a[i-1][j-1]+a[i-1][j]。且第i行有i个数。注意区别vector的二维数组操作与一般二维数组操

2022-01-05 17:34:43 431 4

原创 【LeetCode 67】二个进制数求和

题目描述给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”提示:每个字符串仅由字符 '0' 或 '1' 组成。1 <= a.length, b.length <= 10^4字符串如果不是 "0" ,就都不含前导零。解题思路   

2021-12-24 00:01:10 3640 1

原创 C++实现十进制转换

C++实现进制转换十进制与二进制之间的转换方法,其他进制转换和其思路一致,只需更改几个参数首先介绍十进制变为二进制的转换方法常用方法:用2整除的方式。用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,以此排列起来。注1:当一个整数除另一个整数得到整数商而没有余数时,叫做整除。如2除6得3,就说2能整除6或6能被2整除。注2:除以是被除数在前,除数在后;除是除数在

2021-11-26 15:26:31 1002 1

原创 C++容器指针的返回并使用

将一个容器的地址赋值给容器指针,并对指针进行操作。此操作可以用在自定义函数中。#include<iostream>#include<vector>using namespace std;int main(){ vector<int>y{1,2,3}; vector<int>*p; p=&y;//将容器y的地址赋值给容器指针p for(int i=0;i<(*p).size();i++) //输出p指针对应地址的值 c

2021-11-14 20:29:57 983 1

原创 如何返回一个数组(利用STL实现)

如何返回一个数组(利用STL的vector实现)在C语言中是不支持返回一个数组的,但是我们可以使用其他方法等效替代。话不多说,直接上代码。#include<iostream>#include<vector> //stl标准库中的vector组件 using namespace std;vector<double> T() //此处函数的定义需要注意 { vector<double> b1;//定义一个vector类型变量b1 可看成一个dou

2021-11-08 00:08:33 522 1

原创 [Lambda表达式] Pyhton学习笔记

Lambda表达式Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数,所谓的匿名函数就是没有函数名的函数。而一般用def定义的函数必须带有函数名,一般形式为“def 函数名( ):”。需要注意的是,Python的Lambda表达式的函数体只能有单独的一条语句,也就是返回值表达式语句。Lambad函数一般具有如下特性:lambda函数是匿名的lambda函数有输入和输出lambda函数一般功能简单其一般形式为: lambda 形参列表 : 函数返回值表达

2021-09-14 20:24:41 22

原创 [递归] Python学习笔记

递归本章节前面已经介绍了关于函数创建和函数调用的知识,在函数中不仅可以调用其他函数,也可以调用函数本身。在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数,递归这个词对于没有接触过编程语言的读者来说会比较陌生,简单来说递归就是函数自己调用自己的过程。读者可以尝试下面一个递归程序:def recursion(): return recursion() recursion()运行后程序会直接崩溃,显示“超出最大的递归深度”结束程序的运行。这一类递归被称

2021-09-14 01:31:25 50

QT开发:TCP文本通信

在QT中实现TCP通信

2022-05-07

空空如也

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

TA关注的人

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