leetcode——String to Integer (atoi)

一、如果字符串为空,返回0 二、去除字符串首部的空格 三、判断正负号 四、判断并转化数字字符,如果遇到非数字字符,就返回已转化的值 五、分别考虑正数和负数的溢出情况 class Solution { public: int myAtoi(string str) { ...

2016-08-31 22:31:45

阅读数 203

评论数 0

数组最长递增子序列

int longest_increase_seq1(const vector& nums) { vector max_lens(nums.size(), 1);//max_lens[i]表示数组nums[0,...,i]最长递增子序列的长度 for (int i = 0; ...

2016-08-21 19:50:15

阅读数 197

评论数 0

最长公共子串和最长公共子序列

求解左边矩阵对角上连续出现的1的个数也就是求解右边矩阵中的最大值 int longest_common_substring(const char* str1, const char* str2) { int len1 = strlen(str1), len2 = strlen(str2);...

2016-08-19 23:19:41

阅读数 243

评论数 0

二叉树递归/非递归遍历

递归遍历 //前序遍历 void preorder(TreeNode *root, vector &path){ if(root != NULL) { path.push_back(root->val); preorder(root-...

2016-08-09 11:27:01

阅读数 173

评论数 0

非递归求取二叉树的最大/小深度

分层遍历的思路: 二叉树分层遍历用到的是BFS(广度优先搜索),显然这必须维护一个队列。但是一个队列只能得到遍历结果,并不能一层一层分开,所以必须使用两个队列curr和next,curr保存当前层的所有结点指针,next保存下一层的结点指针,遍历的过程就是出队列的过程,在对curr出队列的同时将...

2016-08-09 11:16:25

阅读数 1495

评论数 0

守护进程编程惯例

调用fork然后使父进程退出(exit) (1)如果该守护进程是作为shell命令启动,那么父进程终止使得shell认为这条命令执行完毕 (2)使得子进程不是进程组组长,保证后续的setsid()系统调用成功 调用setsid(),脱离控制终端,登录会话和进程组 先介绍一下Li...

2016-08-02 11:32:04

阅读数 264

评论数 0

c++POD 简介

啥是POD类型? POD全称Plain Old Data。通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是一个POD类型。 平凡的定义 1.有平凡的构造函数 2.有平凡的拷贝构造函数 3.有平凡的移动构造函数 4.有平凡的拷贝赋值运算符 5.有平凡的移动赋值...

2016-08-01 12:48:24

阅读数 165

评论数 0

pthread的互斥量和自旋锁

一、自旋锁与互斥量的区别 在多处理器环境中,自旋锁最多只能被一个可执行线程持有。如果一个可执行线程试图获得一个被争用(已经被持有的)自旋锁,那么该线程就会一直进行忙等待,自旋,也就是空转,等待锁重新可用。如果锁未被争用,请求锁的执行线程便立刻得到它,继续执行。一个被争用的自旋锁使得请求它的线程在等...

2016-07-29 20:53:32

阅读数 1653

评论数 0

c++重载、覆盖、隐藏

重载(overload)是指函数不同的参数列表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数。在同一可访问域内(注意同一访问域,基类和派生类不属于同一访问域)被声明的几个具有不同参数列表(参数类型、个数、顺序)的同名函数,程序会根据不同的参数列来确定具体调用哪个函数。对于重载函数的调用...

2016-07-27 21:20:47

阅读数 199

评论数 0

指针大小由什么决定

首先,介绍几个基本概念:(主要摘自百度百科) 字长:在同一时间中处理二进制数的位数叫字长(CPU处理能力)。通常称处理字长为8位数据的CPU叫8位CPU,32位CPU就是在同一时间内处理字长为32位的二进制数据。二进制的每一个0或1是组成二进制的最小单位,称为一个比特(bit)。    一般说...

2016-07-27 21:14:36

阅读数 379

评论数 0

Linux进程状态解析之R、S、D、T、Z、X

Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。 众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。 在linux系统中,每个被运行...

2016-07-25 17:21:12

阅读数 2457

评论数 0

Linux时间系统调用总结

#include typedef __time_t time_t; //获取time_t表示的当前时间 time_t time(time_t *t); struct timeval { __time_t tv_sec;//秒 __suseconds_t tv_usec;//微...

2016-07-20 11:05:54

阅读数 764

评论数 0

leetcode——Intersection of Two Arrays II

题目: Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. ...

2016-07-15 20:08:02

阅读数 294

评论数 0

一个sample学会使用epoll

#include #include #include #include #include #include #include #include #include #include #include #include #define MAX_EVENT_NUMBER 1...

2016-07-15 10:36:51

阅读数 183

评论数 0

一个sample学会使用c++比较函数对象和hash函数对象

/* 1、自定义hash函数对象用于unordered_set中 2、自定义Compare函数对象用于排序 3、学习使用优先级队列priority_queue */ #include #include #include #include #include using namespac...

2016-07-13 23:27:14

阅读数 683

评论数 0

epoll系列系统调用

一、文件描述符就绪 epoll用来同时监听多个文件描述符是否就绪,那么哪些情况下文件描述符可以被认为是可读、可写或者异常呢? 1、文件描述符可读的情况 socket内核接收缓冲区中的字节数大于或等于其低水位标记SO_RCVLOWAT。此时我们可以无阻塞地读,并且读操作返回的字节数大于0.soc...

2016-07-13 17:05:42

阅读数 306

评论数 0

leetcode——Isomorphic Strings

题目: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the characters in s can be replaced to get t. ...

2016-07-10 21:54:32

阅读数 182

评论数 0

leetcode——Count Primes

题目: 输出小于n的质数的个数 方法一: 能不能快速判断一个数字n是不是质数呢? 1、遍历所有小于n的整数,如果都不可以整除那么n为质数 2、遍历所有小于sqrt(n)的整数,如果都不可以整除那么n为质数 3、遍历所有小于sqrt(n)的质数,如果都不可以整除那么n为质数 显然3是最快的做法,因此...

2016-07-10 19:53:08

阅读数 198

评论数 0

java实现的线程池

线程池(Thread Pool)对于限制应用程序中同一时刻运行的线程数很有用。因为每启动一个新线程都会有相应的性能开销,每个线程都需要给栈分配一些内存等等。         我们可以把并发执行的任务传递给一个线程池,来替代为每个并发执行的任务都启动一个新的线程。只要池里有空闲的线程,任务就会分配...

2016-07-08 15:57:22

阅读数 208

评论数 0

leetcode——Single Number III

题目一: Given an array of integers, every element appears twice except for one. Find that single one. class Solution { public: int singleNumber(v...

2016-07-07 19:43:14

阅读数 152

评论数 0

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