自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Rotate Image

顺时针将矩阵旋转90°#include<iostream>#include<vector>using namespace std;void rotate(vector<vector<int>> &matrix){ int n = matrix.size(); for (int i = 0; i < n / 2;i++) for (int j = 0; j < n / 2

2017-08-31 09:37:33 172

原创 sizeof

char 1 int、float 4 double 8指针 4数组 看大小 char a[2];cout<<sizeof(a);//2,1*2int b[2] ;cout<<sizeof(b);//8,4*24.结构体 与精度最高的对齐//sizeof(test)=2 struct test{ char a; char b;};//最高为sizeof(in

2017-08-29 22:41:25 178

原创 排序算法(C++)

原文出处:排序算法总结 #include "stdafx.h"#include <iostream>#include <time.h>using namespace std;/**1. 冒泡排序*///时间复杂度为O(N ^ 2),空间复杂度为O(1)。排序是稳定的void bubble_sort(int arr[], int len){ //每次从后往前冒一个最小值,且每次能

2017-08-27 08:58:06 193

原创 计算机网络的分层、协议以及作用

有哪几种? OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。 五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每层有哪些协议? 物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器) 数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机) 网

2017-08-24 21:08:11 339

原创 观察者模式

当你想要订阅一份报纸,啊,这个例子有点旧,这样,当你想要关注一个公众号,即时的接收该公众号发来的消息,你就是在充当“观察者”的角色。 观察者模式是一种1对n的设计模式,该模式适合有一个主题(公众号)和许多观察者(关注该公众号的人),该主题可以向所有注册自己的观察者推送消息,相当于广播通道。 观察者可以随时注册也可以随时取消关注,假设把所有订阅报纸的人都放在一个类中,当再出现新的观察者,还需要重新

2017-08-24 21:00:33 233

原创 编译型语言和解释型语言

编译型语言: 编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的。编译程序将源程序翻译成目标程序后保存在另一个文件中,该目标程序可脱离编译程序

2017-08-24 15:26:45 379

原创 把数组排成最小的数

class Solution {public: static bool cmp(int a,int b){ string A=""; string B=""; A+=to_string(a); A+=to_string(b); B+=to_string(b); B+=to_string(a);

2017-08-24 10:48:45 176

原创 扑克牌顺子

class Solution {public: bool IsContinuous( vector<int> numbers ) { if(numbers.size()!=5){ return false; } int d[14]; int maxnum=-1,minnum=14; me

2017-08-24 08:59:19 526

原创 字符串的排列

假设字符串内无重复元素时,下述代码正确。vector<string> res;void help(string s, int n){ if (n == 0){ res.push_back(s); } for (int i = 0; i <= n; i++){ swap(s[i], s[n]); help(s, n - 1);

2017-08-23 12:04:24 155

原创 实现pow函数

class Solution {public: double Power(double base, int exponent) { double num = base,res = 1; int exp = exponent; if (exp == 0) return 1; else if (exp <0){ if (base =

2017-08-20 08:11:28 321

原创 leetcode 45.Jump GameII

题目描述: Given an array of non-negative integers, you are initially positioned at the first index of the array. Each element in the array represents your maximum jump length at that position. Your go

2017-08-16 15:11:15 479

原创 回文串(最长前缀/最长子串)

#include "stdafx.h"#include <iostream>using namespace std;//求最长前缀回文串int palindromical(string s){ if (s.size() == 0) return 0; int fc = s[0]; int i = 0; int maxlen = 1; wh

2017-08-15 17:33:00 401

原创 leetcode 110 .Balanced Binary Tree

Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ

2017-08-14 22:29:15 162

原创 ugly number & ugly numberii

判断一个数是不是丑数 三个循环,先除2,再除3,再除5,每当有余数就跳出循环,找出丑数中所有和2,3,5,有关的因子,如果最后结果为1,则为丑数。 注:非正数不是丑数,1是第一个丑数。判断第N个丑叔是几 创建一个数组存储丑数,声明三个指针分别代表因子2,3,5的,并指向该数组。各自的数组乘以各自的因子,当运算结果不大于当前丑叔时,指向自己数组的下一个元素(因为指针指向丑数数组,所以该元素为已经

2017-08-14 15:17:14 235

原创 正则表达式匹配

在牛客网上做剑指offer的习题,这个题感觉有些问题 题目描述 请实现一个函数用来匹配包括’.’和’‘的正则表达式。模式中的字符’.’表示任意一个字符,而’‘表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配错误代码1:bool match(char

2017-08-14 12:53:04 572

原创 string&vector阅读小测试

看c++ primer,测试了几条语法,保存一下代码~ 1.初始化string 注:字符串字面量不能直接相加#include "stdafx.h"#include <string>#include <iostream>using namespace std;int main(){ string f5(5, 'f'); string g5(5, 'g'); //stri

2017-08-13 14:05:28 158

原创 指针和指针的指针

int a=1; int *p=&a; int **p1=&p;p和p1指向的对象的值:*p;指向的对象a的值 p; 存储a的地址 &p;p的地址*p1;指向的对象p的值,p存储的是a的地址 **p1;a的值,等同*p p1;存储p的地址 &p1;p1的地址#include "stdafx.h"#include <iostream>using namespace std;int m

2017-08-13 11:26:56 292

原创 顶层const与底层const

代码如下:#include "stdafx.h"#include <iostream>using namespace std;int main(){ int a = 1,b=10; /* *1.顶层指针 *即指针本身是一个常量, *不能重定向指针指向,但可以通过指针修改指针指向的变量值 */ int *const p = &a;

2017-08-13 10:53:24 279

原创 c++中的引用和指针小测试

#include <iostream>using namespace std;int main(){ int a=1; int &q=a;//定义a的引用 int *p,*p1=0;//定义一个指针p,p1 int *&r=p;//定义一个指针的引用 p=&a;//给p,r赋值 *r=2; //改变a值 //输出结果为a的地址 cout

2017-08-13 09:25:53 200

原创 和为S的两个数/TwoSum

题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 和leetcode 的two sum相似,设置一对起始位置,第一找到的一对数值就是乘积最小的AC代码class Solution {public: vector<int> FindNumbersWithSum(vector<int> array,i

2017-08-12 17:39:03 179

转载 c中的移位运算法

C语言的移位操作符   位移位运算符是将数据看成二进制数,对其进行向左或向右移动若干位的运算。位移位运算符分为左移和右移两种,均为双目运算符。第一运算对象是移位对象,第二个运算对象是所移的二进制位数。   位移位运算符的运算对象、运算规则与结果、结合性如表2-16所示。  移位时,移出的位数全部丢弃,移出的空位补入的数与左移还是右移花接木有关。如果是左移,则规定补入的数全部是0;如果是右移,

2017-08-12 09:09:48 680

原创 层序遍历二叉树(队列的使用)

c++中队列queue< T >的pop()方法返回void类型而非T类型,要先用front()获取class Solution {public: vector<int> PrintFromTopToBottom(TreeNode* root) { queue<TreeNode *> q; vector<int> rst; if(

2017-08-09 16:50:03 616

原创 顺时针打印矩阵

题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。分析:和spiral matrix类似(leetcode spiral matrix )。假设矩阵为方阵(行列数为n),设置打印位置点M(xstart,ystart),每次都打印当前矩阵的最外围元素,从第一个元素开始: 1.向左打印,xstart不变,ystart+1,打印n-1个;2.向下打印,ystart为当前矩阵的最后一列

2017-08-09 16:07:28 231

原创 改进Fibonacci数列

1.递归public class Solution { public int Fibonacci(int n) { if(n<=1) return n; return Fibonacci(n-1)+Fibonacci(n-2); }}当n越大时,耗时越长,因为有大量冗余操作 举个栗子: n=4: Fi

2017-08-08 23:29:56 417

原创 从尾到头打印链表

没什么难度,AC代码如下:/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util.ArrayL

2017-08-08 14:26:30 146

原创 替换空格

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。分析: 开始写的时候,重新开辟了一个StringBuffer存储空间,结果内存不够。就在原str上计算出替换后的长度记做newlen,然后从尾至头一次扫描一遍,更新原有str就好。AC代码:public class Solution {

2017-08-08 14:14:13 157

原创 leetcode 240. Search a 2D Matrix II

leetcode 240 Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted in ascending from left to right. Integ

2017-08-08 14:08:17 238

原创 leetcode 74. Search a 2D Matrix

leetcode 74Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties: Integers in each row are sorted from left to right. The first integer o

2017-08-08 13:44:55 285

原创 c++中的堆存储和栈存储

首先,我们举一个例子:void f() { int* p=new int[5]; } 看到new,我们首先就应该想到,我们分配了一块堆内存,那么指针p呢?他分配的是一块栈内存,所以这句话的意思就是:在栈内存中存放了一个指向一块堆内存的指针p。在程序会先确定在堆中分配内存的大小,然后调用operator new分配内存,然后返回这块内存的首地址,放入栈中在C++中,内存分成5个区,他们分

2017-08-08 13:17:51 2517

空空如也

空空如也

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

TA关注的人

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