自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ Primer Reading

PrefaceMy answer of the Program tests in this book.Chapter one//Num 1:std::cout << "My name is Feishi , and my address is 127.0.0.1." << std::endl;//Nmu 2:long dis;std::cout << "Please input a number:";std::cin >> dis;std::

2021-01-26 03:53:49 186

原创 QT项目打包

前言:通常用qt完成一个小项目之后预期要在不同的机器上运行;我们知道qt程序的编译使用的是dyanmic linking,这些机器有的可能具备了项目运行所需的库文件,有的可能不具备。因此需要提前将项目所必需的库文件与项目资源文件进行打包。methodqt提供了一个执行上述操作的adaptor,在qt安装目录下一个叫windeployqt的可执行文件;例如在我的电脑中,该文件在这里:D:\QT\5.9\msvc2015_64\bin\windeployqt.exe.操作步骤以我之前写的一个小应用

2021-01-15 01:04:11 213

原创 Qt小作品Online Chat(s/c)

前言qt学习有小段时间了,这几天一直考虑做一点什么。找了一些有意义的资料,作了很多参考。于是写了个特别简易的s/c形式地onlinechat。运行图ClientCodeclient.cpp#include "client.h"#include "ui_client.h"#include <QHostAddress>client::client(QWidget *parent) : QWidget(parent), ui(new Ui::client){

2021-01-09 02:14:04 347

原创 github访问、账号注册

github网站访问失败访问文件路径:C:\Windows\System32\drivers\etc打开文件夹下hosts文件复制以下字符串粘贴至文件末尾并保存:140.82.113.4 github.com账号注册邮箱收不到验证链接:将github.com加入域名白名单如下:...

2021-01-07 11:37:45 163

原创 Bisection method

前言关于二分法的基本思路我们在高中时就已经学过,我这里直接上代码。实现代码 int searchRange(vector<int>& nums, int target) { int l=0;int r=nums.size()-1;int t=0; while(l<=r) { t=l+(r-l)/2; if(nums[t]==target)return t;else

2021-01-06 10:23:04 487 1

原创 QTlearning:1.myfirst application

new project下一步至完成code

2021-01-04 19:33:31 96

原创 MergeSort

前言mergesort核心思想特别简单,实现也不复杂。这个人的mergesort写的特别好,如果你某一天失记忘了mergesort的原理,可以来这里瞧瞧:失忆点这里以下代码供参考void sort(vecotr<int> a){ if(a.empty||a.size()==1)return; mergesort(a,0,a.size()-1);}void mergesort(vector<int> a,int b,int e){ if(b&gt

2021-01-04 08:59:30 158

原创 LeetCode 451. 根据字符出现频率排序

题目内容给定一个字符串,请将字符串里的字符按照出现的频率降序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前。此外,"eetr"也是一个有效的答案。示例 2:输入:“cccaaa”输出:“cccaaa”解释:'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。注意"cacaca"是不正确的,因为相同的字母必须放在一起。示例 3:输入:“Aabb”输出:“bbAa

2021-01-03 17:39:33 62

原创 LeetCode 86. 分隔链表

题目内容分隔链表给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入:head = 1->4->3->2->5->2, x = 3输出:1->2->2->4->3->5解题思路copy别人的打趣段子:天晴了雨停了我又觉得我行了。使用两个链表一个记录小于x元素,一个记录大于x的元素,将第二个链表加载第一个的尾部得到结

2021-01-03 12:52:33 140

原创 C++ stack知识总结

文章目录前言ConstructCapaticy&Modify前言stack,也就是栈,特征是filo/lifo,声明在stack.h文件中。Constructstack<valuetype> e; //创建空栈.stack<valuetype, container type<valuetype> > e; //创建空栈,指定底层实现容器.stack<value type> e(container object); //以object内成

2020-12-31 21:57:18 231

原创 C++ priorityqueue知识总结

文章目录ConstructFeatureiteratorCapaticyMultifyc++模板中关于priorityqueue的声明在queue头文件中,因此使用时要#includeConstruct重载两种形式priority_queue<int>;priority_queue<valuetype,container,bool compare>;Featurebased on container;‘compare’ is a functor;example

2020-12-30 14:33:50 247

原创 C++ string知识总结

文章目录前言ConstructIteratorCapacityElement accessModify前言关于学习、了解string相关方法的定义及功能,官方参考手册是最好的地方,权威、客观、简明扼要,没有歧义。这是官方文档的地址:C++官方文档Constructstring string1; //construct an empty string nstring string2=string1; string string3=string(string 2,8,3); //for (int

2020-12-29 12:07:51 154

原创 quick sort

前言最近algorithm调的蛮happy,灵光一闪想实现下quicksort。关于quicksort的基本原理和实现以及相关的参考资料,我找到两篇不错的:基本原理:知乎发现的实现思路:别人截的std源码我个人的实现代码 void quicksort(vector<int>::iterator begin, vector<int>::iterator end) { if (begin == (end - 1))return;

2020-12-28 21:32:41 114

原创 C++Lambda表达式

文章目录前言lambda表达式结构capture listparameter list&return value&function bodyexample前言lambda在数学里写作-λ,俗称匿名表达式,使用它的目的是为了简化代码结构,增强可读性。例如当重定义algorithm头文件中的sort方法的参数三时候,可以不单独使用代码段声明新方法作参数,可以进行如下操作:sort(std::vector<int>:: begin,std::vector<int>:

2020-12-28 10:31:38 152

原创 C++ Deque知识总结

文章目录前言前言关于学习、了解deque相关方法的定义及功能,官方参考手册是最好的地方,权威、客观、简明扼要,没有歧义。这是官方文档的地址:C++官方文档

2020-12-25 16:24:36 140

原创 LeetCode 103. 二叉树的锯齿形层次遍历

题目内容给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \15 7返回锯齿形层序遍历如下:[ [3], [20,9], [15,7]]解题思路使用双栈迭代我出了bug,解决之后补原因### 解题代码/** * Definition for a binary tree node. * st

2020-12-22 00:49:36 97

原创 C++ Array知识总结

http://www.cplusplus.com/

2020-12-21 21:53:26 250

原创 LeetCode 220周赛

仍然灰溜溜的恰分重新格式化电话号码给你一个字符串形式的电话号码 number 。number 由数字、空格 ’ '、和破折号 ‘-’ 组成。请你按下述方式重新格式化电话号码。首先,删除 所有的空格和破折号。其次,将数组从左到右 每 3 个一组 分块,直到 剩下 4 个或更少数字。剩下的数字将按下述规定再分块: 2 个数字:单个含 2 个数字的块。 3 个数字:单个含 3 个数字的块。 4 个数字:两个分别含 2 个数字的块。最后用破折号将这些块连接起来。注意,重新格式化

2020-12-20 12:19:54 167 1

原创 LeetCode 316. 去除重复字母

题目内容给你一个字符串 s ,请你去除字符串中重复的字母,使得每个字母只出现一次。需保证 返回结果的字典序最小(要求不能打乱其他字符的相对位置)。示例 1:输入:s = “bcabc”输出:“abc”示例 2:输入:s = “cbacdcbc”输出:“acdb”提示:1 <= s.length <= 104s 由小写英文字母组成解题思路今儿的题错了四次才过。为了保证程序的正常运行,方法编写必须考虑所有可能发生的情况,这个事情不能讲大概。详见代码。解题代码clas

2020-12-20 08:23:59 174 1

原创 LeetCode 48. 旋转图像

题目内容给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[[ 5, 1, 9,11],[ 2, 4, 8,10],[13, 3, 6, 7],[1

2020-12-19 02:00:10 203 1

原创 LeetCode 714. 买卖股票的最佳时机含手续费

题目内容给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。示例 1:输入: prices = [1, 3, 2, 8, 4, 9], fee = 2输出: 8解释: 能够达到的最大利润:在此处买

2020-12-17 05:40:45 94

原创 C++ 贪吃蛇小游戏(CLI)

文章目录前言设计思路实现过程运行测试前言我大二的时候用c写过一个跑出五格就越界的贪吃蛇,现在看来简直是一堆垃圾。我现在用cplusplus重写它,那就叫它垃圾plusplus好了(狗头)。设计思路贪吃蛇行为过程:1.蛇吃果子2.蛇以speed运动3.蛇在ground上运动4.果子以frquency为间隔出现5.果子出现在在ground上6.蛇的头撞到了空气和果子之外的物体会死实现过程backg.h文件:#include<vector>#include<wind

2020-12-15 23:47:02 390

原创 LeetCode 738. 单调递增的数字

题目内容给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)示例 1:输入: N = 10输出: 9示例 1:输入: N = 1234输出: 1234示例 1:输入: N = 332输出: 299解题思路无解题代码class Solution {public: int monotoneIncreasingD

2020-12-15 01:56:11 355

原创 LeetCode 49. 字母异位词分组

题目内容给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]解题思路我的解法是使用辅助hashtable标记对单词字母进行记录与对比。使用hashmap可能会好一点,不过我没时间重写。解题代码class Solution {public: v

2020-12-14 08:45:34 190

原创 LeetCode 219周赛

只完成了两道送分题,不提hard题,看来我在dynamicprogramming问题的解决方法上还欠缺经验,思路也不够清晰。题1解题代码:class Solution {public: int numberOfMatches(int n) { int i=0; while(n>1) { if(n%2==0)i+=(n/=2);else {i+=n/2;n=n/2+1;} } retur

2020-12-13 14:10:56 108

原创 LeetCode 41双周赛

完成了三题,至于hard题,我曾试图翻译成人类语言,对此我表示很抱歉~。题1解题代码:class Solution {public: int countConsistentStrings(string allowed, vector<string>& words) { unordered_set<char> e; for(auto &n:allowed) {

2020-12-12 23:59:39 243

原创 LeetCode: 376. 摆动序列

文章目录题目内容解题思路接替代码题目内容如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通

2020-12-12 11:41:33 151 1

原创 LeetCoed 649. Dota2 参议院

文章目录题目内容解题思路接替代码题目内容Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇)Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过程的投票进行。在每一轮中,每一位参议员都可以行使两项权利中的一项:禁止一名参议员的权利:参议员可以让另一位参议员在这一轮和随后的几轮中丧失所有的权利。宣布胜利: 如果参议员发现有权利投票的参议员都是同一个阵营的,他可以宣布胜利并决定在游戏中的有关变化。

2020-12-11 21:10:48 174

原创 C++ Vector知识总结

文章目录前言前言关于学习、了解vector相关方法的定义及功能,官方的参考手册毋庸置疑是最好的地方,权威、客观、简明扼要,没有歧义。这是官方文档的地址:C++官方文档

2020-12-11 16:54:17 536

原创 LeetCode 62. 不同路径

文章目录题目内容解题思路接替代码题目内容一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7解题思路递归方法:读题之后的第一判断是用递归来解决这个问题,但以暴力思想实现算法在中等题几乎都会中陷阱,Time Limit Error.dp:本题内容其实与青蛙跳台阶问题没有差别,由题意知机

2020-12-09 19:56:54 98

原创 LeetCode 861. 翻转矩阵后的得分

文章目录题目内容解题思路解题代码题目内容有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]输出:39解释:转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]0b1111 + 0b

2020-12-07 09:52:01 145

原创 LeetCode 621.任务调度器

文章目录题目内容:解题思路:解题代码:题目内容:给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。解题思路:从题目内容可以得知

2020-12-05 12:22:46 111

原创 排序算法-冒泡排序

文章目录关于冒泡排序冒泡排序设计思路冒泡排序实现代码关于冒泡排序冒泡排序是排序算法中相对简单的一种,正如它的名字“冒泡”所类比的,他的工作过程是通过比较来将当前数字集合最大/最小的元素逐个像冒泡一样“浮出”。冒泡排序设计思路关于冒泡排序的设计思路(以非递减排序为例):冒泡排序与选择排序基本相同,也是通过(n-1)次操作来依此筛选出前(n-1)小的数字;细微的差别在于:冒泡排序通过当前数字是否大于右侧元素的条件作为是否进行交换地判断条件,自右至左地将最小值移动到当前数组最前位置;而选择排序是将数组中

2020-12-04 01:33:55 202

原创 排序算法-选择排序

关于冒泡排序:冒泡排序是排序算法中最简单的一种,正如它的名字–“冒泡”所类比的,它的工作过程是基于多次重复性的将数字按非递增/非递减的方式逐个“浮出”的行为来进行的。关于冒泡排序设计思路(非递减排序):对于由j个数字组成的集合,若只要进行(j-1)次操作,每次求出第j小的数并按序放置,就可以得到最终结果。冒泡排序的实现代码:int sort(int* a, int length){ int i = 0; while ((i+1) < length) { int j = i + 1;

2020-12-02 18:58:20 535

空空如也

空空如也

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

TA关注的人

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