- 博客(407)
- 收藏
- 关注
原创 C++ Primer
C++ Primer目录索引虚函数表剖析(一) 虚函数表剖析(二) static关键字用法 volatile、const的用法
2019-08-16 12:33:09 348
原创 剑指offer
序号 题目 标记 1 二维数组中的查找 ★ 替换空格 从尾到头打印链表 重建二叉树 用两个栈实现队列 转数组的最小数字 斐波那契数列 跳台阶 变态跳台阶 矩形覆盖 ...
2019-08-12 09:29:35 192
原创 《回溯算法》目录
序号 题目 标记 1 46. 全排列 2 47. 全排列 II 3 39. 组合总和 4 40. 组合总和 II 5 6 ...
2019-08-11 09:09:47 140
原创 Linux高性能服务器编程
一、文件IO、标准IO1.2.函数dup和dup2三、进程1. fork、vfork、clone2.函数wait、waitpid、孤儿进程、僵尸进程3. 进程组4. 会话四、信号1.函数signal、sigaction2.函信号SIGCHLD3.函数kill、raise、abort、alarm4.信号集、sigprocmask、sigpendin...
2019-04-24 15:00:32 549
原创 《UNIX环境高级编程》目录
第一章:UNIX标准及实现01函数perror、strerror第三章:文件I/O01C库函数02文件描述符、函数open和openat03 函数read、write、lseek04函数dup和dup2第四章:文件和目录01函数stat、fstat、fstatat和lstat02函数umask03 函数chown04 link系列函数05函数mkdi...
2018-10-30 19:41:05 3581
原创 155. 最小栈
题目连接:力扣解法:class MinStack {public: MinStack() { getmin = INT_MAX; } void push(int val) { getmin = min(getmin, val); st.push(val); } void pop() { if(st.top() == getmin) { .
2022-02-20 17:29:05 351 1
原创 Leetcode 124.二叉树中的最大路径
解法1/** * 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) {}
2021-09-11 14:23:01 209
原创 Leetcode 3. 无重复字符的最长子串
无重复字符的最长子解法1class Solution {public: int lengthOfLongestSubstring(string s) { unordered_map<int, int> m; int max = 0; for(int i = 0; i < s.size(); ++i) { int sum = 0; for(
2021-09-09 22:28:37 231
原创 Leetcode 206. 反转链表
206. 反转链表解法1class Solution{public: ListNode *reverseList(ListNode *head) { if(!head || !head->next) return head; ListNode *p; p = reverseList(head->next); head->next->next = head; head->next = nullptr; return p;
2021-09-09 21:50:37 106
原创 【树】104. 二叉树的最大深度
题目104. 二叉树的最大深度方法1/** * 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),
2021-08-17 22:55:13 84
原创 混合欢迎使用CSDN-markdown编辑器
#include <iostream>using namespace std;class SingleCore {public: virtual void Show() = 0;}; class SingleCoreA :public SingleCore {public: void Show() { cout << "Single Core A" << endl; }}; class SingleCoreB :public Singl
2020-10-28 22:47:38 114
原创 322. 零钱兑换
给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。示例1:输入: coins = [1, 2, 5], amount = 11输出: 3解释: 11 = 5 + 5 + 1示例 2:输入: coins = [2], amount = 3输出: -1说明:你...
2019-09-15 19:49:45 341
原创 C++基础:各种输入方法总结
输入原理简述:程序的输入都建有一个缓冲区,即输入缓冲区。每次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。#include <iostream>using namespace std;i...
2019-09-10 11:50:38 339
原创 《Leetcode | 02》
序号 题目 类型 标记 863. 二叉树中所有距离为 K 的结点 ★ 94. 二叉树的中序遍历 ★ 102. 二叉树的层次遍历 144. 二叉树的前序遍历 450. 删除二叉搜索树中的节点 ...
2019-09-07 11:34:07 199
原创 进制转换习题
题目:进制转换解法:#include <iostream>#include <vector>#include <algorithm>using namespace std;long long nums, k;void solution(long long nums, long long k){ vector<int> ...
2019-09-06 16:39:55 767
原创 50. Pow(x, n)
实现pow(x, n),即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例2:输入: 2.10000, 3输出: 9.26100示例3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 <x< 100.0n是...
2019-09-06 15:59:00 175
原创 300. 最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为O(n2) 。进阶: 你能将算法的时间复杂度降低到O(n log n) 吗?来源:力扣...
2019-09-05 17:18:41 100
原创 二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...
2019-09-05 10:55:07 92
原创 顺时针打印矩阵
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.解法:class Solution {public: vector<int> pr...
2019-09-05 10:35:58 86
原创 包含min函数的栈
题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。解法:class Solution {public: stack<int> s; stack<int> s_min; void push(int value) { if(s_min.empty(...
2019-09-04 12:33:41 135
原创 从尾到头打印链表
题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。解法:/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* }...
2019-09-04 10:29:57 100
原创 二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解法:class Solution {public: bool Find(int target, vector<vector<int> > arra...
2019-09-04 10:08:58 182
原创 表示数值的字符串
题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。解法:class Solution {public: bool isNumeric(char* string) ...
2019-09-03 17:19:37 73
原创 字符流中第一个不重复的字符
题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。解法:class Solution{public: void Insert(ch...
2019-09-03 15:44:35 90
原创 数组中出现次数超过一半的数字
题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。解法:class Solution {public: int MoreThanHalfNum_Solution(vector<int> num...
2019-09-03 10:33:34 81
原创 字符串的排列
题目描述输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解法:class Solution {public: vector<string> Pe...
2019-09-03 10:21:16 93
原创 《基础算法》
序号 内容 1 工厂模式 2 观察者模式 3 单例模式 4 策略模式 5 memcpy、memmove 6 strpcy 7 strcat 8 strcmp 9 快速排序算法 10 归并排序算法 11 堆排序算法 ...
2019-09-02 20:24:30 126
原创 Observer观察者模式
#include <iostream>#include <list>using namespace std;class Observer;class Subject { //抽象被观察者public: virtual void Attach(Observer*) = 0; virtual void Detach(Observer*) = 0;...
2019-09-02 15:37:56 105
原创 86. 分隔链表
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5来源:力扣(LeetCode)链接:https://lee...
2019-09-02 10:35:28 93
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人