自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一、单例模式

文章目录定义代码版本1版本2版本3版本4版本5版本5定义保证一个类仅有一个实例,并提供一个该实例的全局访问点。单例模式很容易写,但是保证多线程安全的单例模式则不容易。代码版本1// 内存栈区// 内存堆区// 常数区// 静态区 系统释放 // 二进制代码区 class Singleton {public: static Singleton * GetInstance() { if (_instance == nullptr) { _instance = n

2021-07-13 20:14:37 82

原创 设计模式和模式设计原则

文章目录设计模式模式设计原则依赖倒置原则开放封闭原则面向接口编程封装变化点单一职责原则里式替换原则接口隔离原则对象组合优于类继承什么情况下使用设计模式?设计模式设计模式是什么?其实写代码并不是简单的coding而已,同样的一个功能有的人能写得跟一坨屎一样,但好的程序员就能把它实现得非常优雅巧妙,还特别容易移植扩展。虽说千人千面,每个人的代码风格都不一样,但是高质量的代码总是有套路可循。在哪种典型情况下代码怎么写比较好,我想这就是设计模式定义的范畴。首先看一个例子:这几种写法都能实现多态,但是显

2021-07-13 20:04:02 122

原创 Problem 11-Largest product in a grid

题目11题解#include <iostream>using namespace std;int num[30][30], ans;int dirx[4] = {-1,0,1,1};int diry[4] = {1,1,1,0};int main(){ for(int i=5;i<25;i++) for(int j=5;j<25;j++){ cin >> num[i][j]; }

2021-06-04 12:31:21 61

原创 Problem 8-Largest product in a series

题目8题解用滑动窗口一点一点往后挪动,新加入的乘上,掉出窗口的除掉,但是要注意:以上数据中有很多0,一旦乘以0结果就是0了,所以遇到0是不能直接网上乘的,而且因为要求必须是连续的数字相乘,所以包含数字0的窗口的乘积也是不能去更新最终结果的。#include <iostream>using namespace std;char str[1005];int main(){ long long ans = 0, now = 1, zero_cnt = 0; cin &

2021-06-03 17:48:59 78

原创 Problem 6-Sum square difference

题目6题解一趟遍历,算出结果#include <iostream>int main(){ int sum = 0, psum = 0; for(int i=1;i<=100;++i){ psum += i*i; sum += i; } std::cout << sum * sum - psum << std::endl; return 0;}...

2021-06-03 16:50:06 65

原创 Problem 4-Largest palindrome product

题目4题解#include <iostream>bool isPalindrome(int x){ int raw = x, t = 0; while(x){ t = t*10 + x%10; x/=10; } return t == raw;}int main(){ int ans = 0; for(int i=100;i<1000;++i){ for(int j=i;j&l

2021-06-03 16:42:37 50

原创 Problem 2-Even Fibonacci numbers

题目2题解傻瓜方式可以一趟遍历,用一个大的vector把所有的斐波那契数存下来, 边存边累加符合条件的数,遍历结束,结果就出来了。这道题可以把空间复杂度由O(N)优化到O(1),用两个变量存中间状态即可。#include <iostream>int main(){ long long ans = 0; int a = 1, b = 2; while(b<4000000) { if(b % 2 == 0){ ans

2021-06-03 16:19:34 81

原创 Problem 1-Multiples of 3 and 5

这里写自定义目录标题题目1题解傻瓜方案:优化版本:题目1题解傻瓜方案:一趟遍历,符合条件的累加起来,时间复杂度为O(N)。#include <iostream>int main(){ int sum = 0; for(int i=1;i<1000;i++){ if(i % 3 == 0 || i % 5 == 0){ sum += i; } } std::cout << s

2021-06-03 16:11:46 68

原创 Webbench源码剖析

Webbench源码剖析Web Bench是一个网站压力测试的工具。其最后更新时间是2004年,已经十年多了。其源代码总共才不到600行,全部使用C语言编写,最多可以模拟3万个并发连接。真可谓是简洁代码的代表之作。

2016-08-31 10:36:55 532

空空如也

空空如也

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

TA关注的人

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