[置顶]关于博主

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++实现]36. Valid Sudoku

36. Valid Sudoku

class Solution {

public:

bool isValidSudoku(vector<vector<char>>& board) {

//row[m][n]代表第m+1行是否已使用数字n+1

//col[m][n]代表第m+1列是否已使用数字n+1

//sub_33[m][n]将格子分成了9个小的3x3,m代表第几个3x3小格子,n代表n+1是否已使用

int row[9][9] ={0},col[9][9]={0},sub_33[9][9]={0};

for(int i = 0;i < board.......

[LeetCode C++实现]208. Implement Trie (Prefix Tree)

208. Implement Trie (Prefix Tree)

实现思路是每个结点保存一个26个指针数组,在插入的时候建立前后关系,查询完整单词依赖is_word,而查询前缀只要单词长度查完,没有出现NULL即匹配,完整代码如下(包含析构函数):

class TrieNode {

public:

// Initialize your data structure here.

bool is_word;

TrieNode *children[26];

TrieNode() {

is_word = false;

for (int i = 0; i < 26; i++)

chi......

[LeetCode C++实现]52. N-Queens II

52. N-Queens II

52的解法相对比51更简单,无需保存具体的结果,只是统计符合条件解法的个数。代码从51的解法稍加修改:

class Solution {

public:

int totalNQueens(int n) {

vector<string> nQueens(n,string(n,'.'));

int cnt = 0;

solveNQueens(nQueens,0,n,cnt);

return cnt;

}

private:

void solveNQueens(vector<string> &nQueens, int row,......

[LeetCode C++实现]51. N-Queens

51. N-Queens

非常经典的问题,这里使用DFS解决,代码如下:

class Solution {

public:

vector<vector<string>> solveNQueens(int n) {

vector<vector<string>> res;

vector<string> nQueens(n,string(n,'.'));

solveNQueens(res,nQueens,0,n);

return res;

}

private:

void solveNQueens(vector<vector&l......

日常开发笔记总结(八)

下列程序编译是否会报错:

// directive_1.c

#include <stdio.h>

#ifndef MIN

#define MIN(x, y) ((x) > (y) ? (y) : (x))

#endif /**/x

int main()

{

printf("min val = %d\n", MIN(100, -1));

return 0;

}

讲道理程序endif后面有个多余的x应该会编译失败,可是程序编译仅仅有个告警,运行正常。

[root c++]#gcc -g -Wall -o gcc gcc.c

gcc.c:6:12: warn......

[LeetCode C++实现]111. Minimum Depth of Binary Tree

非递归解法可以套用广度优先算法解法,在循环中添加判断条件,如果节点左右子树均为NULL,则最小深度就在该层。

/**

* Definition for a binary tree node.

* struct TreeNode {

* int val;

* TreeNode *left;

* TreeNode *right;

* TreeNode() : val(0), left(nullptr), right(nullptr) {}

* TreeNode(int x) : val(x), left(nullptr), right(nullptr)......

[LeetCode C++实现]104. Maximum Depth of Binary Tree

C语言实现:

/**

* Definition for a binary tree node.

* struct TreeNode {

* int val;

* struct TreeNode *left;

* struct TreeNode *right;

* };

*/

int maxDepth(struct TreeNode* root)

{

if(NULL == root)

{

return 0;

}

int llen = maxDepth(root->left) + 1;

int rlen = maxDepth(root->right) ......

[LeetCode C++实现]102. Binary Tree Level Order Traversal

二叉树广度优先算法(水平搜索),使用队列保存各节点,初步完成能编译通过代码:

/**

* Definition for a binary tree node.

* struct TreeNode {

* int val;

* TreeNode *left;

* TreeNode *right;

* TreeNode() : val(0), left(nullptr), right(nullptr) {}

* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}

* TreeNo......