[置顶]关于博主

52coder.net是很早之前与同学一起脑洞的域名:中文名可以叫做-我爱程序员。我记得那年冬天孟非主持的非诚勿扰很火,我信誓旦旦的说以后要做一个网站,专门去为程序员解决个人问题,于是就有了现在的这个域名52coder.net。当时比较热衷于论坛,折腾过Discuz,在读书时折腾过,最多的时候同时在线人数超过1000,论坛的注册人数达到了2w左右,现在却早已忘记当初因为什么原因关闭论坛。

博客开始于2017年6月,希望博客用来记录自己的学习过程,渐渐通过几个月的时间喜欢上写点东西,目前学习的内容主要有C语言、数据结构、Linux系统编程、算法、LeetCode等,如果针对文章中的内容有任何疑......

UNIX/Linux系统管理技术手册

书架上的这块大部头书在5.1的时候终于有时间来学习了,本文将长期更新,记录UNIX/Linux系统管理技术手册学习中的疑问与解答。该书在豆瓣评分颇高,UNIX/Linux系统管理技术手册.勘误表在本文最后,如有疑问欢迎留言讨论。

笔记中实际操作的系统来自于ubuntu,运行在一款古董级的hp笔记本上,在Macbook Pro中运行了一台centos7虚拟机,电脑卡的时候关闭该虚拟机使用hp笔记本中的虚拟机。

[LeetCode C++实现]78.Subsets

加班回来同事微信发来一道题目说这是整个leetcode中最棒的一道题目获益良多,本着我坚决不信的态度,尝试了两种平平无奇的解法后正打算开喷,在讨论区看到一种位运算的方法,好吧,我承认这是最棒的一道题。

Given a set of distinct integers, nums, return all possible subsets (the power set).

Note: The solution set must not contain duplicate subsets.

Example:

Input: nums = [1,2,3]

Output:

[

[3],

[1],

[......

[LeetCode C++实现]347. Top K Frequent Elements

Given a non-empty array of integers, return the k most frequent elements.

Example 1:

Input: nums = [1,1,1,2,2,3], k = 2

Output:

Example 2:

Input: nums = [1], k = 1

Output:

Note:

You may assume k is always valid, 1 ≤ k ≤ number of unique elements.

Your algorithm's time complexity......

[LeetCode C++实现]22.Generate Parentheses

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

For example, given n = 3, a solution set is:

[

"((()))",

"(()())",

"(())()",

"()(())",

"()()()"

]

首先这种类型的题目一眼看上去肯定是可以用递归的形式,递归的写法往往是一看就懂,......

从linux信号说起

以前的笔记里写过linux信号相关的使用,当时是读apue TLPI等书籍时记录的关于信号的一些编程知识。最近又改了一些shell脚本的bug,本篇笔记权当个人总结,主要从修改过的典型bug串起各知识点,文章延续之前想到哪写到哪的风格,如果内容有误,欢迎留言指出,不胜感激。

进程状态

D 不可中断 uninterruptible sleep (usually IO)

R 运行 runnable (on run queue)

S 中断 sleeping

T 停止 traced or stopped

Z 僵死 a defunct ("zombie") process

重点介绍下......

[LeetCode C++实现]406. Queue Reconstruction by Height

在leetcode.com上随机选择到这个题目,讲道理,第一遍没看懂题目啥意思,有很多人也在吐槽题目读不懂I don't understand the question. Reconstruct the queue to what?直到我打开讨论区看了一眼别人的python代码,如果你也看不懂这个题目描述,我结合中文版的描述加以完善:

现在有一个队列,每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。但现在输入的序列是随机打乱的,编写一个算法来重建这个队列。

输入队列:

[[7,0], [4,4], [7,1], [5,0], ......

exec家族execvp函数使用趣事

公司一小兄弟问我:execvp函数执行后不返回,如何将申请的内存释放掉呢?还专门发我一个不知道从哪个英文网站copy的例子,问我使用valgrind怎么没有检测出来内存泄露,你不是吹valgrind吹的天花乱坠吗?这个例子仅仅为了说明这个问题,如果换成myargs[0] = "wc";这种写法,就不会存在本篇文章了。

完整例子如下:

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <string.h>

#include <fcn......

地址空间随机化

在阅读操作系统导论一书,书中第二章有个例子如下:

common.h

#ifndef __common_h__

#define __common_h__

#include <sys/time.h>

#include <sys/stat.h>

#include <assert.h>

double GetTime() {

struct timeval t;

int rc = gettimeofday(&t, NULL);

assert(rc == 0);

return (double) t.tv_sec + (double) t.tv_usec......

日常开发笔记总结(五)

周末在家收拾东西,找到一本刚入职时记的笔记,重新读一遍记录部分内容方便查阅。

获取下标为n的元素地址

当时记录在笔记本上旁边有个大大的问号,为何不使用下标形式呢?

#include <stdio.h>

//获取下标为n的元素地址

#define ELEM_PTR(base,n,esize) ((void *)(((char *)base + n*esize)))

int main()

{

int arr[] = {1,2,3,4,5,6,7,8,9,10};

printf("address of fifth elem = %p.\n",ELEM_PTR(arr,5,4......