LeetCode刷题笔记_84. 柱状图中最大的矩形

题目出自LeetCode84. 柱状图中最大的矩形其他题解或源码可以访问: tongji4m3描述给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。示例:输入: [2,1,5,6,2,3]输出: 10思路整体思路是最大矩形是遍历一遍数组,分别查看以索引i为高度所形成的矩形,取他们的最大值维护一个递增序列。当遇到一个递减的元素,前面比他高的元素所能形成的矩形已经确定了,即可计算出来。然后继续,直到遍.
分类: 其他 发布时间: 09-21 12:11 阅读次数: 0

LeetCode刷题笔记_94. 二叉树的中序遍历

题目出自LeetCode94. 二叉树的中序遍历其他题解或源码可以访问: tongji4m3描述给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]思路迭代:用栈的方式,思路和递归差不多。先往左走到底,不能走就回退一格,加入当前元素。然后继续查看当前元素的右节点。搞定完该节点,再回退一格。直到弄完根节点。细节代码//递归public List<Integer.
分类: 其他 发布时间: 09-21 12:11 阅读次数: 0

LeetCode刷题笔记_96. 不同的二叉搜索树

题目出自LeetCode96. 不同的二叉搜索树其他题解或源码可以访问: tongji4m3描述给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / .
分类: 其他 发布时间: 09-21 12:10 阅读次数: 0

LeetCode刷题笔记_98. 验证二叉搜索树

题目出自LeetCode98. 验证二叉搜索树其他题解或源码可以访问: tongji4m3描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false.
分类: 其他 发布时间: 09-21 12:10 阅读次数: 0

LeetCode刷题笔记_101. 对称二叉树

题目出自LeetCode101. 对称二叉树其他题解或源码可以访问: tongji4m3描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3思路递归,每次分为两次递归,判断最外层的两个节点,最内侧两.
分类: 其他 发布时间: 09-21 12:10 阅读次数: 0

第12章_Java内存模型与线程

文章目录概述硬件的效率与一致性缓存一致性指令重排序优化Java内存模型主内存和工作内存内存间交互操作对于volatile型变量的特殊规则保证此量对所有线程的可见性禁止指令重排序优化效率针对long和double型变量的特殊规则原子性,可见性,有序性原子性可见性有序性先行发生原则Java与线程线程的实现内核线程实现用户线程的实现混合实现java线程的实现Java线程调度协同式抢占式状态转换Java与协程内核线程的局限协程的复苏Java的解决方案概述多任务处理原因:计算机运算能力强大了,计算机运算速度与他的
分类: 其他 发布时间: 09-21 12:10 阅读次数: 0

LeetCode刷题笔记_102. 二叉树的层序遍历

题目出自LeetCode[102. 二叉树的层序遍历](https://leetcode-cn.com/problems/binary-tree-level-order-traversal其他题解或源码可以访问: tongji4m3描述给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ .
分类: 其他 发布时间: 09-21 12:09 阅读次数: 0

LeetCode刷题笔记_104. 二叉树的最大深度

题目出自LeetCode104. 二叉树的最大深度其他题解或源码可以访问: tongji4m3描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。代码public int maxDepth(TreeNode root){ .
分类: 其他 发布时间: 09-21 12:09 阅读次数: 0

LeetCode刷题笔记_105. 从前序与中序遍历序列构造二叉树

题目出自LeetCode105. 从前序与中序遍历序列构造二叉树其他题解或源码可以访问: tongji4m3描述根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7思路对于前序与中序遍历的数组[lo,hi]:前序的根.
分类: 其他 发布时间: 09-21 12:09 阅读次数: 0

Redis设计与实现笔记_9.数据库

文章目录服务器中的数据库切换数据库数据库键空间添加新键读写键空间时的维护操作设置键的生存时间或过期时间设置过期时间保存过期时间移除过期时间计算并返回剩余生存时间过期键的判断过期键删除策略定时删除惰性删除定期删除Redis过期键删除策略惰性删除策略的实现定期删除策略实现服务器中的数据库struct redisServer{ int dbnum;//服务器的数据库数量 redisDb *db; //一个数组,保存着服务器中的所有数据库 默认16}切换数据库每个Redis客户端都有个目标数据库,
分类: 其他 发布时间: 09-21 12:09 阅读次数: 0

LeetCode刷题笔记_114. 二叉树展开为链表

题目出自LeetCode114. 二叉树展开为链表其他题解或源码可以访问: tongji4m3描述给定一个二叉树,原地将它展开为一个单链表。例如,给定二叉树 1 / \ 2 5 / \ \3 4 6将其展开为:1 \ 2 \ 3 \ 4 \ 5 \ 6思路按照中序遍历的顺序构造成链表,并将之放在右子树的位置上细节需要原地展开代.
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

LeetCode刷题笔记_121. 买卖股票的最佳时机

题目出自LeetCode121. 买卖股票的最佳时机其他题解或源码可以访问: tongji4m3描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 .
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

LeetCode刷题笔记_139. 单词拆分

题目出自LeetCode139.单词拆分其他题解或源码可以访问: tongji4m3描述给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可以被拆分成 "leet c.
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

LeetCode刷题笔记_141. 环形链表

题目出自LeetCode141. 环形链表其他题解或源码可以访问: tongji4m3描述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。输入:head.
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

leetcode解题思路分析(二十三)155 - 167题

最小栈实现一个栈,可以常数时间返回最小值很简单的一道题,没啥说的class MinStack {public: /** initialize your data structure here. */ MinStack() {} void push(int x) { if(x < min) { min = x...
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

Linux操作系统学习笔记(一)启动

前言  Linux操作系统内核是服务端学习的根基,也是提高编程能力、源码阅读能力和进阶知识学习能力的重要部分,本文开始将记录Linux操作系统中的各个部分源码学习历程。  关于如何学习源码,个人觉得可以从以下角度入手,有效地提高阅读和学习的效率。(学习语言就不说了,这是基本功。学习IDE推荐Source Insight或者Visual Studio)理解代码的组织结构。 以Linux源码举...
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

leetcode解题思路分析(二十四)168 - 177题

excel表格名称给定一个正整数,返回它在 Excel 表中相对应的列名称。进制转换class Solution {public: string convertToTitle(int n) { string ans = ""; while (n > 0) { n -= 1; ...
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

Linux操作系统学习笔记(二)内核运行

前言  上文中,我们分析了从按下电源键到BootLoader完成加载的过程。加载完成之后,就要正式启动Linux内核了,而在这之前首先要完成从实模式到保护模式的切换。本文主要分析以下几部分内容新旧中断的交替打开A20进入main函数内核初始化  其实整个过程中还有很多内容,比如检查各种硬件设备等,在此略过不提。下面就开始潜入Linux源码的海洋畅游啦。新旧中断的交替  在实模...
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

leetcode解题思路分析(二十五)178 - 185题

分数排名编写一个 SQL 查询来实现分数排名。如果两个分数相同,则两个分数排名(Rank)相同。请注意,平分后的下一个名次应该是下一个连续的整数值。换句话说,名次之间不应该有“间隔”。MySQL常用窗口函数有rank, dense_rank, row_number, 区别在于第一个对同样数据会并列排行,后面的会+n,而第二个则只会+1,第三个就单纯顺序排行,没有并列关系# Write your MySQL query statement belowselect score, d.
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0

Linux操作系统学习笔记(三)内核初始化

前言  前文分析到Linux内核正式启动,完成了实模式到保护模式的切换,并做好了各种准备工作。下来就要看开始内核初始化工作了,源码位置位于init/main.c中的start_kernel(),源码如附录所示。这包括了一系列重要的初始化工作,本文会介绍其中一部分较为重要的,但是详细的介绍依然会留在后文各个模块的源码学习中单独进行。本文的目的在于承接上文给出一个从内核启动到各个模块开始运转的过程介绍,而不是详细的各部分内容介绍。创建0号进程:INIT_TASK(init_task)异常处理类中断
分类: 其他 发布时间: 09-21 12:08 阅读次数: 0