- 博客(7)
- 资源 (3)
- 收藏
- 关注
原创 192. 通配符匹配-2
192. 通配符匹配判断两个可能包含通配符“?”和“*”的字符串是否匹配。匹配规则如下: '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。两个串完全匹配才算匹配成功。样例样例1输入:"aa""a"输出: false输出2输入:"aa""aa"输出: true输出3输入:"aaa""aa"输出: false输出4输入:"aa""*"输出: true说明: '*' 可以替换任何字符串输出5...
2021-03-26 08:30:13 234
原创 192. 通配符匹配
192. 通配符匹配判断两个可能包含通配符“?”和“*”的字符串是否匹配。匹配规则如下: '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。两个串完全匹配才算匹配成功。样例样例1输入:"aa""a"输出: false输出2输入:"aa""aa"输出: true输出3输入:"aaa""aa"输出: false输出4输入:"aa""*"输出: true说明: '*' 可以替换任何字符串输出5...
2021-03-19 09:21:12 352
原创 C++性能优化__优化IO
第一,缩短调用链void stream_read_streambuf(std::istream& f, std::string& result) {std::stringstream s;s << f.rdbuf();std::swap(result, s.str());}第二,减少重新分配void stream_read_string_reserve(std::istream& f,std::string& result){f.se
2021-03-09 19:58:33 353
原创 C++性能优化__优化并发
第一,减小临界区的范围在临界区中执行I/O 处理无法提高性能。第二,限制并发线程的数量我们应当使可运行线程的数量少于或等于处理器核心的数量,这样能够移除切换上下文的间接开销。第三,避免惊群当有许多线程挂起在一个事件——例如只能服务一个线程的工作——上时就会发生所谓的惊群(thundering herd)现象。当发生这个事件时,所有的线程都会变为可运行状态,但由于只有几个核心,因此只有几个线程能够立即运行。第四,避免锁护送当大量线程同步,挂起在某个资源或是临界区上时会..
2021-03-09 19:53:21 244
原创 C++性能优化_优化模式
1.预计算可以在程序早期,例如设计时、编译时或是链接时,通过在热点代码前执行计算来将计算从热点部分中移除。2.延迟计算通过在真正需要执行计算时才执行计算,可以将计算从某些代码路径上移除。3.批量处理每次对多个元素一起进行计算,而不是一次只对一个元素进行计算。4.缓存通过保存和复用昂贵计算的结果来减少计算量,而不是重复进行计算。5.特化通过移除未使用的共性来减少计算量。6.提高处理量通过一次处理一大组数据来减少循环处理的开销。7.提示通过在代码中加入可能会改善性
2021-03-09 19:25:43 161
原创 C++性能优化指南_优化字符串
1.使用复合赋值操作避免临时字符串std::string remove_ctrl_mutating(std::string s) { std::string result; for (int i=0; i<s.length(); ++i) { if(s[i] >= 0x20) result += s[i]; } return result;}2.通过预留存储空间减少内存的重新分配std::string r
2021-03-09 19:18:38 215
原创 191. 乘积最大子序列
找出一个序列中乘积最大的连续子序列(至少包含一个数)。数组长度不超过20000乘积最大的子序列的积,小于2147483647您在真实的面试中是否遇到过这个题? 样例样例 1:输入:[2,3,-2,4]输出:6样例 2:输入:[-1,2,4,1]输出:8 int maxProduct(vector<int> &nums) { // write your code here int size = nums.size();...
2021-03-08 08:47:20 82
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人