Shilei Tian

Waiting Persistent Accumulation Surpass

[LeetCode 41] First Missing Positive

题目要求Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2,0] return 3,and [3,4,-1,1] return 2. Your algor..


[LeetCode 523] Continuous Subarray Sum

题目要求Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2..


[C++] new 和 malloc 的区别

改编自《细说new与malloc的10点区别》。 我们从以下 10 个方面来讲述 new 和 malloc 的区别。 1. 申请的内存所在位置new 操作符从自由存储区(free store)上为对象动态分配内存空间,而 malloc 函数从堆上动态分配内存。自由存储区是 C++ 基于 new ..


[操作系统] 三种实现线程的方式

提起线程模型,大家可能会立马想起来操作系统课程里面的三种经典线程模型:一对一模型、多对一模型和多对多模型。这个对应关系主要体现在内核线程和用户线程数量上的关系。在《Modern Operating Systems》里面讲到了线程实现的三种方法::用户线程、内核线程和混合模式,看了这个以后感觉还是..


[操作系统] 防止两个进程同时进入临界区的几种方法(尝试)

本文来探讨进程间通信(Inter Process Communication, IPC)中防止两个进程同时进入临界区的几种方法。首先我们先讲一下一个好的方法应该具备的四个基本条件: 不会有两个进程同时进入临界区。 该方法不会对 CPU 的运行速度和数量做任何假设。 在临界区外运行的进程不会阻塞..


10 个自增典型例题解析

第 1 题源码int x = 5;x++;printf("%d", x); 解析这道题目没有什么好解释的,在第二行处进行后置自增后,x 变成 6。 第 2 题源码int x = 5;++x;printf("%d", x); 解析这道题目同样没有什么好解释的,在第二行处进行后置前置后,x 变成 6..


[LeetCode 145] Binary Tree Postorder Traversal

题目要求Given a binary tree, return the postorder traversal of its nodes’ values. For example:Given binary tree {1,#,2,3}, 1 \ 2 /3 return [3,2,1]. Not..


[LeetCode 222] Count Complete Tree Nodes

题目要求Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from Wikipedia: In a complete binary tree every l..