![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法c++实现
痴毫冷墨残章
这个作者很懒,什么都没留下…
展开
-
【学习笔记】设计模式之单例模式(c++)非线程安全,线程安全,c++11,懒汉饿汉,pthread_once
本文总结自李建忠老师的设计模式课程class Singleton{private: Singleton(); Singleton(const Singleton& other);public: static Singleton* getInstance(); static Singleton* m_instance;};Singleton* ...原创 2019-07-05 16:55:30 · 325 阅读 · 0 评论 -
LeetCode198. 打家劫舍 [c++实现]
题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷...原创 2019-07-26 10:49:16 · 100 阅读 · 0 评论 -
Leetcode105. 从前序与中序遍历序列构造二叉树
描述根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7/** * Definition for a binary tree no...原创 2019-07-22 14:31:01 · 74 阅读 · 0 评论 -
【学习笔记】僵尸进程,孤儿进程,守护进程
孤儿进程:父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程。#include <stdio.h>#include <unistd.h>#include <sys/wait.h>int main(void){ pid_t pid; pid = fork(); if (p...原创 2019-07-29 16:27:38 · 114 阅读 · 0 评论 -
LeetCode 207. 课程表【C++ 实现】
题目描述现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释: 总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。所以这是可能...原创 2019-07-29 10:39:24 · 724 阅读 · 0 评论 -
LeetCode128. 最长连续序列(c++)
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-consecutive-sequenceclas...原创 2019-07-07 11:36:17 · 692 阅读 · 0 评论 -
剑指offer【题3-题11】c++实现
3数组中的重复数字class Solution { public: // Parameters: // numbers: an array of integers // length: the length of array numbers ...原创 2019-07-15 10:48:16 · 136 阅读 · 0 评论 -
LeetCode 160. 相交链表(c++实现)
思路统计两个链表的长度,并记录两个链表尾结点,判断是否相同。比较链表长度,让较长的链表走|lenA-lenB|步数,使得两个俩表剩余部分长度相等两个链表一起走,走到相同节点,即相交节点。实现class Solution {public: ListNode * getIntersectionNode(ListNode *headA, ListNode *headB) { if ...原创 2019-07-14 11:36:44 · 144 阅读 · 0 评论 -
LintCode 185 矩阵的之字型遍历(c++实现)
描述给你一个包含 m x n 个元素的矩阵 (m 行, n 列), 求该矩阵的之字型遍历。样例样例 1:输入: [[1]]输出: [1]样例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10, 11, 12]]输出: [1, 2, 5, 9, 6, 3, 4, 7, 10, 11, 8, 12]思路1 采用分圈处理的方法。在子矩...原创 2019-07-14 10:56:53 · 192 阅读 · 0 评论 -
剑指offer 重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int val; * ...原创 2019-06-28 15:42:29 · 62 阅读 · 0 评论 -
lintcode 110 最小路径和
题目描述给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径class Solution {public: /** * @param grid: a list of lists of integers. * @return: An integer, minimizes the sum of all numbers along its ...原创 2019-06-27 20:16:11 · 226 阅读 · 0 评论 -
【学习笔记】设计模式之观察者模式
本文是学习李健忠老师的设计模式课程总结的学习笔记动机在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”–一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好的抵御变化使用面向对象技术,可以将这种依赖关系弱化,从而实现软件体系结构的松耦合。场景:文件分割器需求:提供进度条,显示分割进展class IProgr...原创 2019-06-29 21:50:25 · 104 阅读 · 0 评论 -
lintecode79 最长公共子串(c++实现)
最长公共子串中文English给出两个字符串,找到最长公共子串,并返回其长度。样例样例 1:输入: “ABCD” and “CBCE”输出: 2解释:最长公共子串是 "BC"样例 2:输入: “ABCD” and “EACB”输出: 1解释: 最长公共子串是 'A' 或 'C' 或 'B'class Solution {public: /**...原创 2019-07-05 16:16:39 · 524 阅读 · 0 评论 -
剑指offer【12 13 15 16 18 19】
12 矩阵中的路径题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。例如a b ce s fc s ad e e这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"...转载 2019-08-05 10:34:13 · 151 阅读 · 0 评论