- 博客(16)
- 收藏
- 关注
原创 LeetCode二刷记录【7】位运算符号
1.& (位 “与”) and ^ (位 “异或”) | (位 “或”) or ~ (位 “取反”)2 .移位运算符:(移位补零) <<(左移) >>(右移)在VS上实践了一下,对于右位移运算,int的右位移后补的比特为符号位数据。int num = 0x80000000;num>>1;这样num变为0xc0000000无符号数的移位都是添...
2020-05-19 09:47:46
136
原创 LeetCode二刷记录【6】
1.最小栈的双栈实现方法一个栈用于存储数据,另一个存储当前的最小值,两个栈同步操作即可class MinStack {public: /** initialize your data structure here. */ MinStack() { } void push(int x) { stack_data.push(x); if(stack_min.empty()) stac
2020-05-11 22:12:25
122
原创 LeetCode二刷记录【5】动态规划小结
1.爬楼梯dp[i]为到达第i个阶梯的所有走法数量。所求为dp[n]dp数组没有必要一直存在,已知前两个即可。 int climbStairs(int n) { //初始状态加上递推式 int num1=1,num2=2; if(n<=2) return n; else { for(int i=2;i<n;++i)
2020-05-11 22:04:44
146
原创 LeetCode二刷记录【4】链表的快慢指针和递归法
用于解决单向链表问题的两种技巧,其中快慢指针适合找到链表中端,递归法实际应用了栈的“颠倒顺序”的作用。具体参考LeetCode回文链表:快慢指针:class Solution {public: bool isPalindrome(ListNode* head) { //快慢指针,配合链表翻转 if(head==NULL...
2020-05-06 12:33:07
127
原创 LeetCode二刷记录【3】
反转链表的两种方法,虽然递归法比较复杂而且更加浪费空间一点,但是记录一下说不定以后就能用到~~迭代法:class Solution {public: ListNode* reverseList(ListNode* head) { //iteratively ListNode h=ListNode(-1);//头结点 while...
2020-05-04 22:36:05
105
原创 STL标准库【1】仿函数(Functors or Function Objects)
仿函数的两点优势:1.仿函数可以有状态,是smart function。2.仿函数可能获得更好的性能,借助于template在编译器确定的细节。#include <iostream>#include<vector>template <class T>inline void PRINT_ELEMENTS(const T& coll,c...
2020-05-04 18:26:12
132
原创 C++产生类似numpy.random.randint(low,high)随机数的方法
上网查了下C++生成一定范围内随机数的方法,一般都是下面这种: for (int t = 0; t < 100; ++t){ int target = rand() % (max-min+1) + min; cout<<target<<endl; }然后发现输出为:都是以163开头的。。。再看下Python的...
2020-04-29 10:16:03
1062
原创 LeetCode二刷记录【2】
字符串转换整数 (atoi)自动状态机解法。像题目要求的这种可以根据输入明确画出状态变化的情况可以考虑建立一个自动状态机。class Automation{ private: string state="start"; unordered_map<string,vector<string>> table={ {"start"...
2020-04-26 16:56:30
144
原创 LeetCode二刷记录【1】
官方给的说法是题目至少刷两遍,刷第二遍时会有更好的思路、更简洁的代码、更加能吸收更好的解法以及更多的小技巧。在这里开始记录二刷积累的经验。涉及C和C++(主要是C++)一.数组C的排序函数int comp(const void *a,const void *b){ if(*(int*)a>*(int*)b) return 1; else retur...
2020-04-25 18:36:25
105
转载 LeetCode 存在重复元素 III
数学描述一下,是否存在i,j使得 : 成立。我是在二叉搜索树里看到这个题目的,所以应该用二叉搜索树来解决。解决思路:维护一个大小为k的二叉搜索树,该树的元素为一个在数组上大小为k+1的滑动窗口所包括的元素,该窗口从左往右滑动。滑动接触到新的元素nums[i],此时应检查二叉树有无元素x满足:拆解成:①②如果存在这样的x,那么便可返回true。寻找...
2020-03-21 22:51:42
158
原创 LeetCode面试题17.01.不用加号的加法
感谢评论区的网恋教父@带带大师兄 提供的解答,我这里个人理解一遍当作记录:static修饰函数表明该函数作用域为该文件。将加法看作二进制的 非进位和+进位和下面代码中的sum和c分别表示非进位和,进位和。至于为什么。。。手动算几次就明白了。。。//不用+-*/的加法class Solution {public: static int add(int a,int ...
2020-03-21 20:45:21
179
翻译 Window10下CPU only运行taichi的example
先下载开源的代码:https://github.com/taichi-dev/taichi根据现在的要求要有Python 3.6/3.7我是属于试试大神的代码,所以选了CPU only:python3 -m pip install taichi-nightly有可能pip安装失败,这个时候需要换个快一点的镜像,我换成了阿里云的镜像,参考:https://blog.csd...
2020-03-04 19:09:12
740
原创 Qt5.8.0遇到的一个中文乱码问题
维护公司代码时看到一个工具出现了如下的乱码:于是开始检查代码,借此机会理了一遍char *、QString、GB18030、UTF8之间的关系。这里出现乱码的原因是:由SDK接口得到一个包含中文的char[]字符串:char byName[NAME_LEN];这个字符串存储的中文为GB18030格式保存,对于Qt5.8.0来说,默认设置本地字符编码为UTF8、默认设置QStr...
2018-12-27 22:11:16
432
原创 error LNK2001: 无法解析的外部符号"public: virtual struct QMetaObject const * .....
由于要统一Qt版本和整理代码,我在Qt5.8.0上构建Qt5.5.1的工程,把源代码和资源文件移过来后编译出现标题所示的提示。在网上搜了半天后发现,这是因为没有生成moc_XXX.cpp,原来我只是在.pro文件里加了个包含路径,而没有把.h文件写到.pro工程文件里,虽然编译能通过但是不会生产moc_XXX.cpp,也就无法找到QMetaObject。qtcreator里右击项目 选择 ...
2018-12-22 22:41:13
1161
原创 C++ 查看exe依赖的dll
最近在公司里要维护一个半年没人维护的项目,首要目标就是用qt5.8统一之前的qt版本,由于之前编码的混乱,各种dll、lib、CPP、H文件混在一起。为了知道哪些dll能用哪些不能用,我上网查了一下,发现了一个不错的工具--Dependency Walker用这个软件打开exe就可以看到依赖的全部dll了,这下就可以一个一个dll去解决运行依赖问题了。。。...
2018-12-19 23:10:46
1975
原创 关于造轮子
刚毕业在公司待了几个月了,boss让我写个网络通信然后用ftp传输文件的程序,我一开始对boss给的程序有点不屑,于是去看最基本的QTcpClient和QSocket的使用方法,调了QT的几个基本的API然后拼凑几个信号槽就完事了,然后我遇到了无法知道消息长度的难题。。。。于是请教了上司,然后上司说这样是不行的,网络通信完全处于混沌状态,要自己组报文,解析报文才行。都怪我当初没有好好看上司给的...
2018-12-09 22:55:41
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人