3.2.1 LeetCode数组类题目选做(1)—— First Missing Positive & Majority Element & Product of Array Except Self

数组题目概述 数组的题目很多很重要,一般和其他知识点综合应用。包括Two pointer,Binary Search,Dynamic Programming,Greedy,Backtracking 等,各类算法都将分别选做一些题目学习交流总结。 这一系列选择出一些非应用上述知识点,而是一些奇思妙想的、套路很深的数组的题目,总结后扩展思路,领悟一些可能会再次遇见的套路,也许可以处理类似的问题。 ...
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

3.2.2 LeetCode数组类题目选做(2)—— Spiral Matrix & Rotate Image & Set Matrix Zeroes

Array 类题目选做之二 二维矩阵 54. Spiral Matrix Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order. Example 1: Input: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7,...
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

4.1 python数据结构之串——概述和基本算法

概述: 字符串(string)简称串,也是一种线性结构。在python中和array差不多,因为py的数组也可以包括各种字符(在C/Java一类的语法中,数组必须是同一种数据类型的元素)。线性结构,有限序列,是主要特点。串其中可以包含各种元素,也是计算机主要处理的一类对象。因此,串的题目涉及的范围很广,可以结合其他算法出题,往往比较有难度。通常,动态规划,双指针,回溯和栈是很重要的工具。 串的...
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

Java并发--深入理解显式锁

注:本篇博客部分内容引用自:Java并发编程:Lock 引言 在Java 5.0之前,协调对共享对象的访问可以使用到的机制只有synchronized和volatile。在Java 5.0之后,增加了一种新的机制:ReentrantLock。ReentrantLock并不是一种替代内置锁的方法,而是在内置锁不再适用的情况下,作为一种可选择的高级功能。 既生synchronized,何生Lock ...
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

Java并发--原子变量类的使用

注:本篇博客主要内容来源于网络,侵删~ 引言 我们假设你已经熟练掌握了CAS,原子变量类等的相关概念。这篇博客中,我们主要讨论原子变量类的使用。 原子变量类 原子变量类共12个,分4组: 计数器:AtomicInteger,AtomicLong,AtomicBoolean,AtomicReference。 域更新器:AtomicIntegerFieldUpdater,AtomicLongFie...
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

29muduo_net库源码分析(五)

1.进程(线程)wait/notify (1)pipe (2)socketpair (3)eventfd,eventfd是一个比 pipe更高效的线程间事件通知机制,一方面它比 pipe 少用一个file descripor,节省了资源;另一方面,eventfd的缓冲区管理也简单得多,全部“buffer”只有定长8 bytes,不像 pipe 那样可能有不定长的真正buffer。 in
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

30muduo_net库源码分析(六)

1.EventThread (1)任何一个线程,只要创建并运行了EventLoop,都称之为IO线程 (2)IO线程不一定是主线程 (3)muduo并发模型one loop per thread + threadpool (4)为了方便今后使用,定义了EventLoopThread类,该类封装了IO线程 (5)EventLoopThread创建了一个线程 (6)在线程函数中创建了一
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

Initializer Lists

1.简介 2.initializer_list complex com{1, 2},也就是类似P(int a, int b)的这样子 (1)initializer_list是基于array实现的 (2)编译器为你构造了一个array的数组,将array的begin和len传入到initializer_list,initializer_list构造函数是pri
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

20muduo_base库源码分析(十一)

1.日志作用 (1)开发过程中:调试错误,更好的理解程序 (2)运行过程中:诊断系统故障并处理,记录系统运行状态 2.日志级别 (1)TRACE  指出比DEBUG粒度更细的一些信息事件(开发过程中使用) (2)DEBUG  指出细粒度信息事件对调试应用程序是非常有帮助的。(开发过程中使用) (3)INFO  表明消息在粗粒度级别上突出强调应用程序的运行过程。 (4
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

31muduo_net库源码分析(七)

1.Socket封装 (1)Endian.h  封装了字节序转换函数(全局函数,位于muduo::net::sockets名称空间中)。 (2)SocketsOps.h/ SocketsOps.cc  封装了socket相关系统调用(全局函数,位于muduo::net::sockets名称空间中)。 (3)Socket.h/Socket.cc(Socket类)  用RAII方法封装
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

32muduo_net库源码分析(八)

1.Acceptor (1)Acceptor用于accept(2)接受TCP连接 (2)Acceptor的数据成员包括Socket、Channel,Acceptor的socket是listening socket(即serversocket)。Channel用于观察此socket的readable事件,并回调Accptor::handleRead(),后者调用accept(2)来接受新连接
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

33muduo_net库源码分析(九)

1.TcpServer/TcpConnection (1)Acceptor类的主要功能是socket、bind、listen (2)一般来说,在上层应用程序中,我们不直接使用Acceptor,而是把它作为TcpServer的成员TcpServer还包含了一个TcpConnection列表 (3)TcpConnection与Acceptor类似,有两个重要的数据成员,Socket与Chan
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

34muduo_net库源码分析(十)

1.连接关闭时序图 2.代码 1.TcpConnection.h // Copyright 2010, Shuo Chen. All rights reserved. // http://code.google.com/p/muduo/ // // Use of this source code is governed by a BSD-style license // that
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

46muduo库使用示例(五)

1.RTT计算 2.代码 #include #include #include #include #include using namespace muduo; using namespace muduo::net; const size_t frameLen = 2*sizeof(int64_t); void serverConnectionCallback(const
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

Baidu-Rpc中Pb结构转为Json

1.C++动态创建对象(类似java反射) 2.pb结构中repeated,Extension,如何将pb结构转化为string类型(baidu-rpc中有库json2pb文件,可以看源码学习一下) 3.Pb结构中Extension字段使用 4.Pb中Descriptor,Reflection如何实现动态创建对象 https://developers.google.com/protocol-
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

boost正则库

1.代码 std::string slot_name; std::string slot_value; std::string place_holder; // such as "${sys.city}" boost::regex rgx("\\$\\{(\\w+\\.{0,1}\\w*)\\}"); boost::match_results result
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

字典数组遍历

from __future__ import print_function card_infos = [{"name":"asda","age":18,"tt":{"asda":00}},{"name":"999","ppp":11},{"111":111}] #find_name = raw_input("please input name:") for i in card_infos:
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

python中使用matplotlib问题

一.ImportError: No module named ‘_tkinter’的一种解决方法 导入matplotlib时,出现ImportError: No module named ‘_tkinter’的错误,首先yum list installed | grep ^tk 查看是否存在相应模块,通常原因是tkinter和tk-devel缺失。通过yum install -y tkint
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

DSIC

沟通
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0

_GNUC__宏函数

今天在看Linux系统编程这本书的代码的时候看到了GNUC,不太清楚这个宏所以去查了一下,以此记录。GNU C预定义了一系列的宏,这些宏都是以双下划线开始的,这里只讲一下GNUC GNUC_MINOR GNUC_PATCHLEVEL,其他GNU C的预定义宏可以到这里查看: https://gcc.gnu.org/onlinedocs/gcc-5.1.0/cpp/Common-Predefin...
分类: 其他 发布时间: 10-06 23:10 阅读次数: 0