自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 442. Find All Duplicates in an Array(LeetCode)

Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others appear once.Find all the elements that appear twice in this array.Could you do it without extra space

2016-11-10 23:42:00 288

原创 372. Super Pow(LeetCode)

Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large positive integer given in the form of an array.Example1: a = 2 b = [3] Result: 8Example2: a

2016-11-10 17:30:32 268

原创 83. Remove Duplicates from Sorted List(LeetCode)

Given a sorted linked list, delete all duplicates such that each element appear only once. For example, Given 1->1->2, return 1->2. Given 1->1->2->3->3, return 1->2->3./** * Definition for

2016-11-10 17:06:25 294

原创 183. Customers Who Never Order (LeetCode, SQL)

183. Customers Who Never Order Suppose that a website contains two tables, the Customers table and the Orders table. Write a SQL query to find all customers who never order anything. Table: Cust

2016-11-10 16:36:06 264

原创 343. Integer Break(LeetCode, C++, 动态规划)

Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.For example, given n = 2, return 1

2016-11-09 18:17:51 442

原创 Bigint Multiplication:大数乘法(hihoCoder C++)

Bigint Multiplication时间限制:10000ms 单点时限:1000ms 内存限制:256MB描述Given 2 nonnegative integers a and b, calculate a × b.输入One line with 2 integers a and b separated by a single space.0 ≤ a, b ≤ 10100.输出The v

2016-11-09 17:19:21 703

原创 MySQL复习笔记

关系型数据库管理系统特点:体积小、速度快、总体拥有成本低、开放源码 指令 作用 sudo apt-get install mysql-server 安装MySQL服务端、核心程序 sudo apt-get install mysql-client 安装MySQL客户端 sudo service mysql start 打开MySQL服务 mysql -u root

2016-11-07 21:29:07 377

原创 Java初学笔记

Java 标识符由数字,字母和下划线_,美元符号$组成。在 Java 中是区分大小写的,而且还要求首位不能是数字。Java 中的变量类型如下: 数据类型 默认值 存储格式 数据范围 short 0 2个字节 -32,768到32767 int 0 4个字节 -2,147,483,648到2,147,483,647 byte 0 1个字节

2016-11-05 17:52:05 207

原创 设计模式(一):创建型模式

设计模式(一):创建型模式创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建

2016-10-26 02:38:39 249

原创 effective c++ 读书笔记

条款1:尽量用const和inline而不用#define以const行使常量折叠,用inline代替常用操作的宏定义,而且库里面有很多常用函数可用。当然不能抛弃宏,宏还是很有用滴。偶最近才发现宏的可爱之处。。。咔咔。条款2:尽量用而不用iostream的IO智能,灵活,类型安全。呃,效率要比stdio的IO低些。条款3:尽量用new和delete而不用malloc和freenew/delete是转

2016-10-19 17:00:35 168

原创 RISC CPU处理器五级流水线 IF ID EX MEM WB 的编写@计算机组成原理

大二做的一个计算机组成原理课程设计,用verilog实现一个五级流水线的CPU。 主要实现了加减、比较、左移右移、条件跳转等的精简指令集。`timescale 1ns / 1ps`define idle 1'b0`define exec 1'b1//Data Transfer & Arithmetic`define NOP 5'b00000`define HALT 5'b00001`de

2016-10-18 16:21:59 11604 1

转载 mutable和volatile

mutable为了突破const的限制。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为const,其mutable成员也可以被修改。保护类的成员变量不在成员函数中被修改,是为了保证模型的逻辑正确,通过用const关键字来避免在函数中错误的修改了类对象的状态。并且在所有使用该成员函数的地方都可以更准确的预测到使用该成员函数的带来的影响。而mut

2016-10-17 17:29:28 2069

原创 多态

虚函数与抽象类可以用纯虚函数阻止生成对象。virtual void f() = 0;接口类:有纯虚函数必须为多态基类声明virtual析构函数构造函数不能是virtual函数。否则通过基类指针释放子类对象时会造成内存泄漏。

2016-10-07 23:21:46 186

原创 C++继承

面向对象封装 encapsulation继承 inheritance多态 polymorphism类之间关系is-a 继承体现has-a 组合体现继承的意义代码重用体现不同抽象层次公有继承class Teacher: public Person{};##私有继承##多重继承

2016-10-07 17:41:22 169

原创 String类的实现

class String{public: String(const char* = NULL); // 构造函数 ~String(); // 析构函数 String(const String&); // 拷贝构造函数 String& operator=(const String&); // 赋值运算符 String& operator=(const char*)

2016-10-06 16:48:45 367

原创 运算符重载

为了提高程序的可读性。如果一个类没有提供赋值运算函数,则默认提供一个。如果一个类提供了拷贝构造函数,那么也要提供一个重载的赋值运算函数。赋值运算符重载传入const引用 1. 检查自赋值 2. 释放原有的内存资源 3. 返回本对象的引用参数不能都是内部类型成员函数C++规定,=、()、[]、->这四种运算符必须为成员形式。RMB operator+(const RMB&);友元函数friend

2016-10-06 15:59:47 261

原创 单例设计模式——singleton

保证在应用程序中,一个类只有一个对象将构造函数设置为私有,在类的实现中确保生成对象的个数class Singleton{public: static Singleton* getInstance(); // 获取句柄 void doSomething(); void destroy(); // 销毁private: Singleton(); // 私有构造函数

2016-10-05 18:26:29 227

原创 友元函数和友元类

授予非公有成员的访问权。只能出现在类定义的内部。不是类成员,不受其声明出现部分访问控制影响。友元关系是授予的、不对称的、会破坏封装class X{ // ... friend void g(); friend class Z; // ...};

2016-10-05 17:53:19 170

原创 拷贝构造函数

当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数: 1. 一个对象以值传递的方式传入函数体 2. 一个对象以值传递的方式从函数返回 3. 一个对象需要通过另外一个对象进行初始化。如果在类中没有显式地声明一个拷贝构造函数,那么,编译器将会自动生成一个默认拷贝构造函数,该构造函数完成对象之间的位拷贝。位拷贝又称浅拷贝。自定义拷贝构造函数是一种良好的编程风格,它可以阻止

2016-10-05 17:47:04 262

原创 C++ const关键字

const出现在*左边,表示被指物是常量。const出现在*右边,表示指针自身是常量。const数据成员必须使用成员初始化列表进行初始化。class A{public: A(); ~A();private: const int val;};A::A() :val(0) //初始化列表{}const成员函数不能修改数据成员class Foo{public

2016-10-04 17:19:00 174

原创 动态内存分配

C语言:malloc/free函数内存区域data area:全局变量、静态数据、常量code area:所有类成员函数和非成员函数代码stack area:为运行函数而分配的局部变量、函数参数、返回数据、返回地址等heap area:动态内存分配区C++:new/delete运算符在堆上生成对象,需要自动调用构造函数释放时自动调用析构函数new/delete配对使用new[]/d

2016-10-04 15:42:20 410

原创 C++ static类成员

静态数据成员在类外分配空间和初始化。在static成员函数中不能使用this指针。即使没有实例化对象也可以使用。名字在类的作用域中,可以避免与全局变量冲突。可以实施封装,作为私有成员。

2016-10-04 15:28:09 223

原创 explicit构造函数

explicit构造函数可以防止隐式转换

2016-10-04 15:16:41 170

原创 C++内联函数

在类中定义的成员函数(C++允许在其他地方定义成员函数)一般为内联函数,即使没有明确用inline标示。只需在最初的定义处标示一次inline。不能包含switch…case等。

2016-10-03 17:40:45 147

原创 C++函数重载与extern "C"

C++支持函数重载,符号表里的名字并不是函数名。 若C++使用C头文件,会找不到具体函数(C不支持函数重载)。C头文件应该这样写:#ifdef __cpluscplus extern "C" { #endif //some code #ifdef __cplusplus } #endif 如果C头文件已经写了,可以这样:extern "C" { #include "tes

2016-10-02 17:16:57 304

原创 C++多重继承

歧义(Ambiguity)即使只有一个可取用,仍会发生(如一个public一个private)。必须明白指出要调用哪一个函数(如:derived.Base1::f( ))。钻石型多重继承模糊调用,导致编译错误。使用virtual base class解决。

2016-05-28 17:07:33 220

转载 C++智能指针

C++智能指针auto_ptrshared_ptrweak_ptrscoped_ptrauto_ptrauto_ptr是现在标准库里面一个轻量级的智能指针的实现,存在于头文件 memory中,之所以说它是轻量级,是因为它只有一个成员变量(拥有对象的指针),相关的调用开销也非常小。get,获得内部对象的指针release,放弃内部对象的所有权,将内部指针置为空reset,销毁内部对象并

2016-05-22 21:44:19 288

转载 C++强制类型转换

对于传统的转换方式(C式或函数式),只在数值类型(包括整型、浮点型、字符类型和枚举)上使用。这也是延续C的形式,当然这类转换也是可以用static_cast来替换,但是因为是基本类型,所以传统转换已经很直观。 对于const_cast转换运算符,用在需要去除掉const限定的时候。其实这种情况出现的很少,可能的方法在const_cast一文中已经又举例,不过还是反复强调, 使用const_

2016-05-22 16:05:23 390

转载 linux学习(四):实体链接与符号链接

实体链接与符号链接:lnHard Link (实体链接, 硬式连结或实际连结)在前一小节当中,我们知道几件重要的信息,包括: 每个文件都会占用一个 inode ,文件内容由 inode 的记录来指向; 想要读取该文件,必须要经过目录记录的文件名来指向到正确的 inode 号码才能读取。 也就是说,其实文件名只与目录有关,但是文件内容则与 inode 有关。那么想一想, 有没有可能

2016-05-14 11:50:12 1333

转载 linux学习(三):Linux文件系统管理

Linux文件系统管理EXT2文件系统(Linux second extended file system, ext2fs) Linux最传统的磁盘文件系统(filesystem) 索引式文件系统(indexed allocation) 每个 inode 与 block 都有编号,至于这三个数据的意义可以简略说明如下: superblock:记录此 filesystem

2016-05-13 15:19:09 419

转载 linux学习(二):linux启动

启动流程与主要启动记录区(MBR)我们在计算机概论里面谈到了,没有运行软件的硬件是没有用的,除了会电人之外…, 而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由於操作系统会控制所有的硬件并且提供核心功能, 因此我们的计算机就能够认识硬盘内的文件系统,并且进一步的读取硬盘内的软件文件与运行该软件来达成各项软件的运行目的。问题是,你有没有发现,既然操作系统也是软件,那么我的计算

2016-05-08 17:12:21 218

转载 linux学习(一):计算机硬件

计算机硬件的五大单元输入单元输出单元CPU内部的控制单元算数逻辑单元主内存 CPU指令集精简指令集(Reduced Instruction Set Computer, RISC)Sun公司的SPARC系列IBM公司的Power Architecture(包括PowerPC)系列ARM系列复杂指令集(Complex Instruction Set Computer, CISC)x8

2016-05-07 17:30:03 241

原创 Computer Network 1: Introduction

What is network?Directly Connectedpoint-to-point link 点对点连接 (dedicated medium)multiple access link (shared medium, broadcast, collision)Internetworking(网络互联):networks connected by routers (or gatewa

2016-04-11 22:00:49 679

转载 空指针与函数指针

空指针 void pointers指针void 是一种特殊类型的指针。void 指针可以指向任意类型的数据,可以是整数,浮点数甚至字符串。唯一个限制是被指向的数值不可以被直接引用(不可以对它们使用引用星号*),因为它的长度是不定的,因此,必须使用类型转换操作或赋值操作来把void 指针指向一个具体的数据类型。它的应用之一是被用来给函数传递通用参数:// integer increaser#incl

2016-04-10 17:36:20 4163

原创 C++输入输出

#include <fstream>TEXT I/Oofstream output;output.open("output.txt");// some operationoutput.close(); // close the fileTEST FILE EXISTENCEinput.fail()TEST EOFwhile(!input.eof()) { input >> number

2016-04-06 17:03:45 276

原创 数组与指针

数组名单独使用,实际上代表了数组的起始地址。访问第一个元素:*list 访问第二个元素:*(list + 1)假设list地址为1000, 则list+1的值1000+sizeof(int)。memset的使用(转)在初始化数组尤其是需要每次都初始化的时候,很多同学使用循环来进行,这样不但速度慢,而且写起来也很长。所以现在提供一个函数来实现这个功能。。。原型:extern void *memset

2016-04-04 15:50:41 208

转载 常量指针与指针常量的区别(转载)

常量指针与指针常量的区别(节选)一) 常量指针 指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:1)const int *p;2)int const *p;常量指针的使用要注意,指针指向的对象不能通过这个指针来修改,可是仍然可以通过原来的声明修改,也就是说常量指针可以被赋值为变量的地址,之所以叫做常量指针,是限制了通过这个指针修改变量的值。例如:int a =

2016-04-04 15:27:57 231

原创 华为软件精英挑战赛2016

先上赛题链接:http://codecraft.huawei.com/home/detail正在参赛中,先占个坑,想到什么新的再来更新前言 赛题源自“未来网络”业务发放中的路由计算问题。算路问题属于基础算法问题,在图论、网络、交通等各个方面均有着广泛的研究与运用,里面不乏一些经典的算法,例如最短路中的广度优先搜索,Dijkstra算法等。网络算路问题的更优算法实现对于网络资源高效配置具有重要价值。

2016-03-21 17:06:57 2308 1

原创 新浪云PHP(续)

上次写好简单的显示页面后,又添加了插入、修改、删除三个基本功能。index.php<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="zh"><head><meta charset="utf-8"><style> body { font: 13px / 1.4 Helvetica, arial

2016-02-07 16:57:43 609

原创 新浪云PHP

2016-01-31 01:08:17 1031

空空如也

空空如也

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

TA关注的人

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