- 博客(17)
- 收藏
- 关注
原创 Qt实习生笔试题之图片浏览窗口
首先需要获取到文件夹中的所有图片,这里用QStringList来存储各个图片的路径,然后定义一个下标currentIndex来表示要查看哪一张图片,初始值为0.后来用transform来控制缩放比例,注意:放大和缩小的因数相乘应该等于1,这样不管放大还是缩小都可以回到原来自适应的大小。然后设计上一张和下一张按钮的函数,直接对下标进行++或者--即可,然后调用图片显示函数。实现一个简单的图片浏览器窗口,包括上一张、下一张、放大和缩小按钮,并在按下按钮时切换图片或改变图片大小。
2023-10-28 17:48:23
257
1
原创 Qt实习生面试题--表格编辑器
接下来就是包含几个按钮并设置他们的点击事件,重点是打开文件并保存。这里是打开当前目录下的一个TXT文件写入数据,写入用QTextStream对象,利用横纵坐标获取单元格内的文本然后通过<<符写入TXT文件,中间以制表符隔开。制作一个表格编辑器需要用到QTableWidget控件,设置控件的行数和列数,然后将控件设置为可编辑的。实现一个简单的表格编辑器窗口,包括添加行、删除行和保存按钮,并在按下保存按钮时将表格数据保存到文件中。
2023-10-28 17:15:48
149
1
原创 基于Qt开发的天气预报程序
在本次练习中,我熟悉了Qt的网络模块的使用,了解了JSON数据的解析和提取,提高了我的界面设计和布局能力,锻炼了问题解决能力。
2023-10-26 17:31:28
192
原创 回溯算法之组合问题Ⅱ
此时将2push后将5push发现比target大,返回到push5的循环中,此后6,7,10都将跳出,然后回到push2的循环中,将2给pop,push5发现和目标值相等,添加并返回,此后6,7,10都将不满足跳出。然后回到第二个1的循环中,然后将2,5,6,7,10都和第一个1组合一次,回溯完成。其中res是我们返回的结果集,path是我们用来存储搜索到的所有可能的结果、sum是每次累加之后的结果,start表示从哪里开始取元素。本题是经典的组合问题,考虑使用回溯算法的模版加以修改即可,有两个要点。
2023-10-09 17:33:21
169
1
原创 力扣之不同路径Ⅰ和Ⅱ
题目中指出机器人只能往两个方向走分别是向右和向上,所以在某一个网格的路径dp【i】【j】,机器人只能由dp【i-1】【j】和dp【i】【j-1】过来,将这两个方向相加就是dp【i】【j】的不同路径和了。同理,遇到障碍物时我们就跳过这个障碍物,当障碍物在我们下方时,就往右边走,当障碍物在我们右边时,我们就往下走。由于是一个m*n的网格,我们用一个二维数组来存储结果,其中dp【i】【j】表示从起点0,0到【i】【j】坐标有dp【i】【j】种不同的路径。1. 向右 -> 向右 -> 向下 -> 向下。
2023-08-04 17:00:33
71
1
原创 妮蔻之前k个高频元素
在小顶堆中,父节点的值小于或等于其子节点的值,因此根节点是堆中的最小值。而在大顶堆中,父节点的值大于或等于其子节点的值,因此根节点是堆中的最大值。与上一题不一样的点是这题要考虑排序的问题,出现频率一样的单词要按字典顺序排序,这点可以在自定义排序函数中实现。"the", "is", "sunny" 和 "day" 是出现次数最多的四个单词,今天的两道题差不多,都是求高频的前K个元素,采用的方法都是哈希表+小顶堆。"i" 和 "love" 为出现次数最多的两个单词,均为2次。个出现次数最多的单词。
2023-08-02 11:27:21
57
1
原创 力扣之重排链表
结点个数为奇数:当个数为奇数时,假设个数为n,那么中间结点的位置假设n/2+1,所以我们可以使用快慢指针来实现,当快指针到达最后一个数时,慢指针恰好到达中间结点。那么如何分成两条链表呢,可以使用中间结点的方法,求出链表的中间结点,如何将后面半段的链表反转一下,然后再和前半段链表做合并操作,这样就得到了正确的结果。结点个数为偶数:与上同理,既然题目要求结点个数为偶数时取第二个中间结点,那么我们让快指针指向最后一个结点之后也就是指向空时,此时慢指针恰好是中间结点。,请你反转链表,并返回反转后的链表。
2023-08-01 10:20:37
113
1
原创 力扣之逆波兰表达式求值
例如,加法表达式"2 + 3"在后缀表达式中表示为"2 3 +"。例如,加法表达式"2 + 3"在前缀表达式中表示为"+ 2 3"。例如,加法表达式"2 + 3"就是一个中缀表达式。输入:tokens = ["10","6","9","3","+","-11","*","/","*","17","+","5","+"]输入:tokens = ["4","13","5","/","+"]输入:tokens = ["2","1","+","3","*"]有效的算符为 '+'、'-'、'*' 和 '/'。
2023-07-21 16:37:45
100
1
原创 二叉树的递归、迭代、层序遍历
常见的二叉树遍历方式有三种:前序遍历、中序遍历和后序遍历。中序遍历先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。它还可以用于解决各种算法和数据结构问题,例如二叉搜索树用于快速查找和插入数据,平衡二叉树用于提高搜索和插入的效率,二叉堆用于实现优先队列等,如图为二叉树的结构。左子节点在树中的位置相对于父节点来说是左侧的,右子节点在树中的位置相对于父节点来说是右侧的。二叉树的一个特殊情况是空树,即没有任何节点的二叉树。除了空树之外,每个二叉树都有一个根节点,它是树的顶部节点,没有父节点。
2023-07-18 18:27:55
82
1
原创 栈(Stack)和队列(Queue)
栈(Stack)和队列(Queue)是两种常见的数据结构,它们都是线性数据结构,但在元素的插入和删除方式上有所不同。这些容器提供了相应的成员函数和操作符来进行元素的插入、删除和访问操作。今天学习两道题目加深栈和队列的印象。在C++中,可以使用标准库中的。
2023-07-17 08:32:11
187
1
原创 力扣每日一题
创建一个二维数组dp,其中dp[i][j]表示从第一行到第i行,以第i行第j列元素为结尾的下降路径的最小和。通过状态转移方程dp[i][j] = matrix[i][j] + min(dp[i-1][j-1], dp[i-1][j], dp[i-1][j+1])来计算每个位置的最小路径和。根据示例可知,某一个位置的最小路径和是由这个位置的上一行中左,中,中右和当前位置相加所得,第一行除外,第一行自己就是自己的最短路径和。输入:matrix = [[2,1,3],[6,5,4],[7,8,9]]
2023-07-13 18:48:01
58
1
原创 力扣每日一题+最大数组和
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23。
2023-07-11 16:04:07
70
原创 力扣每日一题+反转字符串中的单词
先初始化一个结果,然后进入循环利用三数之和和目标值的差的绝对值来判断最接近的和,如果三数之和和目标值的差值为0,则为最接近的值。然后使用revers反转函数交换指定区间的字符串,其中第一个参数为字符串,第二个参数为字符串中需要反转的起始位置,第三个参数为需要反转的截至为止,区间为左闭右闭。解题思想为先将字符串中的前置空格,后置空格,单词间多余空格去除,使用的是快慢指针的方法,用slow存储新字符串,fast来遍历字符串;解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。
2023-07-10 16:54:19
74
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人