自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 4. Median of Two Sorted Arrays

题目There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).You may assume nums1 and ...

2018-11-27 17:12:07 205

原创 5. Longest Palindromic Substring

题目:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: “babad”Output: “bab”Note: “aba” is also a valid answer.Exam...

2018-11-25 19:45:57 215

原创 103. Binary Tree Zigzag Level Order Traversal

题目:Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).For example:Given binar...

2018-09-04 19:57:20 232

原创 112. Path Sum

题目:Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.Note: A leaf is a node with no children.Exa...

2018-09-04 19:18:38 164

原创 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...

2018-09-03 20:44:09 116

原创 199. Binary Tree Right Side View

题目:Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to bottom.Example:Input: [1,2,3,null,5,null,4]Output: [1,...

2018-09-03 20:06:43 200

原创 279. Perfect Squares

题目:Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.Example 1:Input: n = 12Output: 3 Explanation: 12 = 4 + 4 + 4.Ex...

2018-09-02 18:36:04 120

原创 257. Binary Tree Paths

题目:Given a binary tree, return all root-to-leaf paths.Note: A leaf is a node with no children.Example:Input: 1 / \2 3 \ 5Output: ["1->2->5", "1->3"]Explanation: Al...

2018-09-02 17:51:50 118

原创 111. Minimum Depth of Binary Tree

题目:Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.Note: A leaf is a node with no ch...

2018-08-31 17:13:39 190

原创 102. Binary Tree Level Order Traversal

题目:Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 ...

2018-08-31 09:55:45 266

原创 101. Symmetric Tree

 Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric: 1 / \ 2 2 / \ / \3 4 4 3...

2018-08-29 22:08:56 146

转载 C/C++协程学习笔记

协程,又称微线程,纤程。英文名Coroutine。协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用。子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。所以子程序调用是通过栈实现的,一个线程就是执行一个子程序。子程序调用总是一个入口,一次返回,调用顺序是明确的。而协程...

2018-08-09 08:18:30 23882

转载 ZooKeeper原理剖析

不同于单机系统,分布式系统在很多方面遇到了新的挑战和难题。为了保证分布式系统能正确工作,需要一个分布式协调系统来调度工作,ZooKeeper也应运而生。ZooKeeper为分布式系统提供了稳定而高效的分布式协调服务,提供了保证分布式数据一致性的基础设施,为分布式锁、命名服务、配置管理的分布式基础服务的构建提供了工具。ZooKeeper的由来随着大数据时代的到来,人们张口闭口都是Hado...

2018-08-06 09:01:33 3564

转载 为什么要在密码里加点“盐”

 盐(Salt)在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。以上这句话是维基百科上对于 Salt 的定义,但是仅凭这句话还是很难理解什么叫 Salt,以及它究竟起到什么作用。第一代密码早期的软件系统或者互联网应用,数据库中设计用户表的时候,大致是这样的结构:mysql> desc ...

2018-07-16 16:55:33 1726 2

原创 Linux中进程之task_struct结构体

Linux中进程控制块每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体。task_struct是Linux内核的一种数据结构,它被装在到RAM里并且包含着进程的信息。每个进程都把它的信息放在task_struct这个数据结构中,task_struct包含了以下内容:标识符:描述本进程的唯一标识符,用来区别...

2018-05-12 11:04:14 1057

原创 注释转换(C到C++)

7种转换情况1.一般情况/*int i = 0;*/2.换行问题/*int i = 0;*/int j = 0;/*int i = 0*/3.匹配问题/*int i = 0;/* int j = 0;*/4.多行注释问题/*int i = 0int j = 0*/int k = 0;5.连续注释问题/*int i = 0;...

2018-05-07 15:23:44 227

转载 柔性数组

#include<stdio.h>typedef struct _SoftArray{ int len; int array[];}SoftArray;int main(){ int len = 10; printf("The struct's size is %d\n",sizeof(SoftArray));...

2018-04-29 23:34:54 1148

原创 并查集(Union-Find)

在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作:Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。Union:将两个子集合并成同一个集合问题:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友...

2018-04-27 12:34:53 213

原创 C语言中的运算符学习笔记

A:易混淆概念辨析 B:异或总结 C : 移位总结Section A:移位运算符针对二进制, 整数(浮点数做不到),不要尝试移动负数,这是标准未定义的模运算针对的是整数寄存器变量没有地址,故不能取地址除法加小数点就是浮点数出发 例如1.0/n就是浮点数的除法Section B:(1).与1异或会翻转(2).与0异或保持不变(3).一个数异或它本身等于...

2018-04-27 00:26:47 1107

转载 微服务在微信后台的架构实践

微服务的理念与腾讯一直倡导的“大系统小做”有很多相通之处,本文将分享微信后台架构的服务发现、通信机制、集群管理等基础能力与其上层服务划分原则、代码管理规则等。背景介绍首先,我们需要敏捷开发。过去几年,微信都是很敏捷地在开发一些业务。所以我们的底层架构需要支撑业务的快速发展,会有一些特殊的需求。另外,目前整个微信团队已经有一千多人了,开发人员也有好几百。整个微信底层框架是统一的,微信后台有千级模块的...

2018-04-27 00:26:41 2256

原创 关于异或运算理解

题目是:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。#include<stdio.h>int find_num(int arr[], int sz){ int i = 0; int ret = 0; for(i=0; i<sz; i++) { ret ^= arr[i]; } return ret;}int main()...

2018-04-26 10:30:51 1785

原创 指针与引用

2018-04-26 10:28:55 460

原创 c语言小程序

AAA给出一个不多于 6 位数的正整数,要求编程输出:1)求出它是几位数;2)分别输出每一位数字;3)按逆序输出各位数字,例如原数 123,应输出为 321;#include<stdio.h>#include<string.h>int main(){ char a[6],i; scanf("%s",&a); int n=strlen(a);...

2018-04-26 10:16:33 494

转载 计算机为什么采用二进制

       1、技术实现简单。计算机是由逻辑电路组成,逻辑电路通常只有两种状态,开关的接通和断开,正好用“0”“1”表示。  2、运算规则简单,两个二进制数的和、积运算组合简单。  3、适合逻辑运算,二进制只有两个数码,和逻辑代数中的“真”“假”相吻合。  4、易于进行转换,二进制和十进制数转换简单。...

2018-04-26 10:14:04 7530

原创 Java小程序

public class test{ public static void main (String args[]){ System.out.println("欢迎学习Java语言");}}public class sxh {public static void main(String[] agrs) {for (int i = 100; i < 1000; i++) {...

2018-04-26 10:13:28 562

原创 递归的简单应用

运用递归的思想,可以使我们平常的代码行数大大减少,并且可以锻炼人的思维,非常喜欢#include<stdio.h>int my_strlen(char* str){ if((*str) =='\0') return 0; else return 1+my_strlen(str+1);}int main(){ char str[] = "Hello"; ...

2018-04-26 10:08:12 307

原创 用Huffman树实现文件压缩并解压

一、前言        如果你学习数据结构,就一定会学到Huffman树,而Huffman编码实际上上就是zip压缩的核心部分,所以,如果已经学习了Huffman树,为何不尝试写一个压缩程序出来呢?如果你没有学习Huffman树,那咱们就一起先学习一下Huffman树吧。二、Huffman树压缩文件定义:Huffman树,又称为最优二叉树,是加权路径长度最短的二叉树。建立:        这样建立...

2018-04-26 10:06:30 827

原创 strcpy 和 memcpy

strcpychar* strcpy(char* dest, const char* src); strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。char* my_strcpy(char* dest,char* src){ if (src == NULL || dest == NULL) ...

2018-04-26 09:59:44 966

原创 strxxx函数模拟实现

strlen()功能:计算给定字符串的长度(直到碰到第一个字符串结束符'\0'为止)int my_strlen(const char* str){ if (str == NULL) return 0; int count = 0; while (*str!= '\0') { count++; str++; } return count;}strcat()功能:将源字符串...

2018-04-26 09:45:53 401

原创 数据在内存中的存储

一、1.整型以补码形式保存在内存中。        2.实型数据在内存中以指数形式保存。        3.float类型在内存中占用4个字节,IEEE规定存储位分配:符号1位、指数8位、尾数23位。二、尾数部分处理成了1.xxxx*2^n的格式。三、指数部分在原有指数的基础上加了127。四、大多数人使用的数字系统是以10为底的,也就是十进制。五、补码的使用:1.在人们的计算观念中,零是没有正负之...

2018-04-26 09:37:01 1254

原创 顺时针打印矩阵

题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字.例如:如果输入以下矩阵: 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 解题思路把矩阵看成有若干个顺时针方向的圈组成 由此可见,这道题包含多个循环,比较难的也就是在于循环的边界条件控制,我们可以这样来想就是,用左上和右下的坐标定位出一次要旋转打印的数据,一次旋转打印结束

2018-04-25 10:23:28 139

原创 巧解快速排序时间复杂度

快速排序时间复杂度递归算法的时间复杂度=递归次数*每次递归遍历的次数我们来看一下快速排序算法的时间复杂度需要怎么来算呢? 代码实现://左右指针法 不断缩放 //思路 begin 找大的 end 找小的 //还要注意 如果是选end为key 则begin先走 否则end先走 //当选择end时候 因为当最后一次 end和begin差一个距离时候 如果先走end那会导致 /

2018-04-24 18:35:35 15972 2

转载 字符串匹配的KMP算法

字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含另一个字符串"ABCDABD"?许多算法可以完...

2018-04-22 21:47:23 96

转载 别把&和nohup混为一谈, 根本不是同一个东西好不好 ------ 聊聊./a.out & , nohut ./a.out , nohup ./a.out &的区别

在第一家公司工作的时候, 我认识了&,在第二家公司工作的时候, 我认识了nohup, 这就是渊源。 随后, 我就一直糊涂用他们, 但并不懂这两个东西。 网上很多地方是乱扯, 瞎复制, 为什么不自己实践一下呢?看个小程序: #include <stdio.h> #include <unistd.h> int main () { int x = 0;

2018-04-22 14:40:05 266

原创 贪心算法-最短路径

贪心算法介绍贪心算法总是做出在当前看来最好的选择,也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择,虽然贪心算法不能对所有问题都得到整体最优解,但是对许多问题它能产生整体最优解.贪心算法的基本要素贪心选择性质 它是指所求问题的整体最优解可以通过一系列局部最优的选择来达到。这是贪心算法一个非常重要的要素,也是和动态规划算法的主要区别,在贪心算法中,仅...

2018-04-10 18:08:03 11036 1

原创 ipc-命名管道(学习笔记)

命名管道由于基于fork机制,匿名管道的使用前提必须是父子进程或者有共同祖先的进程,但是若想让没有亲缘关系之间的进程之间进行通信,怎么做到呢?解决方案就是FIFO (First in, First out),又叫做命名管道,命名管道是一种特殊的文件类型,它在文件系统中是真实存在的,它的好处在于可以通过文件路径来识别管道,从而让没有亲缘关系的进程之间建立连接命名管道的使用步骤一、创建命名管道 有两种

2018-04-10 10:31:54 321

原创 进程间通信-匿名管道(学习笔记)

匿名管道管道是一种进程间通信的形式 头文件:#include< unistd.h > 功能:创建一匿名管道 原型 int pipe(int fd[2]) 参数:fd是文件描述符数组,其中fd[0]表示读端,fd[1]表示写端 返回值:成功返回0,失败返回-1,并且设置错误码 上面这张图形象的诠释了什么是管道,其实管道就是内核里的一段内存,给了读端口 和写端口,首先通过一个简单的例子,

2018-04-09 23:08:36 232

转载 动态规划解决01背包问题

一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?二、总体思路:根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现;三、动态规划的原理及过程:  eg:number=4,capacity=8

2018-04-08 21:27:05 111

转载 什么样的对象才能作为STL容器的元素

这是在使用STL容器前必须搞清楚的一个很重要的问题!STL容器采用拷贝方式来接收待插入的元素对象——在插入的时候容器自动新建等量的元素对象,并用待插入对象依次初始化它们(调用拷贝构造函数);在删除元素时,容器负责释放其内存资源(对于采用随机存储策略的容器,如list和关联容器)或者仅仅调用元素的析构函数(对于采用连续存储策略的容器,如vector)。容器只负责其元素对象本身一级的存储分配与释放,而

2018-04-07 20:12:43 347

原创 二叉搜索树

一、定义二叉搜索树(Binary Search Tree,BST)的性质: 1.所有节点关键码互不相同 2.左边的小,右边的大 3.左右也是一个二叉搜索树二、实现 结点结构template<class K>struct BinarySearchTreeNode{ BinarySearchTreeNode<K>* _left; BinarySearchTreeNode<

2018-04-04 16:31:45 83

空空如也

空空如也

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

TA关注的人

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