再见二零一九
久违的更新好久不见,有好多话想说,但是还是决定留在心里,且做后来故事。
今天是除夕,祝愿大家春节愉快,平安健康。
LeetCode第322题Coin Change
Coin ChangeCoin Change给出不同币值的硬币和一个目标金额,求组成目标金额所需最少的硬币数量,注意,这里可供取用的硬币数据量是不限制的,如果没有可用的硬币,则返回-1即可。
Example 1:
Input: coins = [1, 2, 5], amount = 11Output: 3Explanation: 11 = 5 + 5 + 1
Example 2:
Input: coins = [2], amount = 3Output: -1
这一题使用暴力法会超时,因此需要改换策略,实际上就是要求使用动态规划来完成。动态规划最头痛的就是递推方程,要了解每一次方程的状态是如何转移的,简直让我选择放弃,好在这一题是找零钱,仿佛小学生奥数似的,稍有些趣味性,不妨挑战一下。
以示例一为例,我们现在有1,2,5三种币值的硬币,且任意取用。当我们需要11块钱的时候,我们可以选择摸11个一块钱,也可以选择摸5个两块钱和1个一块钱,当然,最少的是摸2个五块钱和1个一块钱。那么这里就存在一种规律了,比如说我们恰好摸了2个五块钱和 ...
R语言ggplot2绘图转PDF中文乱码问题
ggplot2与中文乱码的Solution字体文件首先假设你有一个Windows系统,其次进行R语言编程所使用的IDE是RStudio非常好用的集成开发环境。
然后在Windows系统中找到中文字体,比如宋体或黑体,再找到一个英文字体,比如Times New Roman。它们大概在C盘的Windows/Fonts路径下。
找出所需的字体文件,比如宋体的字体文件是simsun.ttc,黑体的字体文件是simhei.ttf,Times New Roman的字体文件是times.ttf。
找到字体文件就是成功的一半了,然后我把它们随便放到一个地方准备加载。
showtext包然后需要在R中调用showtext包,如果没有这个包,请安装它。
# 调用showtext包library(showtext)showtext_auto(enable = TRUE)# 载入黑体font_add("heiti", regular = "F:\\font\\simhei.ttf")# 载入宋体font_add("songti", regular ...
LeetCode第104题Maximum Depth of Binary Tree
Maximum Depth of Binary TreeMaximum Depth of Binary Tree求二叉树的最大深度。
Example:
Input: root = [6,2,8,0,4,7,9,null,null,3,5]Output: 4
二叉树的深度可以通过深度优先搜索和广度优先搜索两种方式来遍历,并记录树的层次。
Solution下面是Java的代码:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { // dfs public int maxDepth(TreeNode root) { return root == null ? 0 : 1 + Mat ...
LeetCode第111题Minimum Depth of Binary Tree
Minimum Depth of Binary TreeMinimum Depth of Binary Tree求二叉树的最小深度。
Example:
Input: root = [6,2,8,0,4,7,9,null,null,3,5]Output: 3
二叉树的深度可以通过深度优先搜索和广度优先搜索两种方式来遍历,并记录树的层次。
Solution下面是Java的代码:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { // dfs public int minDepth(TreeNode root) { if (root == null) return 0; ...
LeetCode第235题Lowest Common Ancestor of a Binary Search Tree
Lowest Common Ancestor of a Binary Search TreeLowest Common Ancestor of a Binary Search Tree给定一个二叉搜索树,找到树中两个给定结点的最近公共祖先结点LCA。
Example
Input: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8Output: 6Explanation: The LCA of nodes 2 and 8 is 6.
这一题和236题Lowest Common Ancestor of a Binary Tree有些相似,二叉搜索树是二叉树的一种,所以236题的解法也适用于这题。特别的是,二叉搜索树中根节点的值大于左子树的节点值,小于右子树的节点值,这是可以利用的一个性质:
我们记LCA(2,8) = 6,此时节点p和q是2和8,我们将节点值与根节点值6进行比较,发现p和q分别位于根节点左右两侧,此时根节点6是最近祖先。
我们记LCA(7,9) = 8,此时节点p和q是7和9,我们将节 ...
二零一九年国庆节
国庆·1949-2019今年的国庆节似乎有些特别,从大面上来说,我感受到非常高涨的热情,无论是朋友圈还是微博,也许是这一年发生太多以往没有发生的事,让普通群众们了解到了周边生活之外的零零碎碎,激发起了内心朴素的那一份感情:希望这个国家好。当然,我也清楚地知道,恨不得这个国家立即从地球上消失的也大有人在,怎么说呢,求同存异吧,我认为对于普通人来说,只要过好手头的日子,做好自己的工作,爱护自己的家人朋友,就是最大的爱国。别的嘛,牢骚太盛防肠断,风物长宜放眼量。我相信未来会越来越好,从深渊回望,莫回头,莫回头。
阅兵·游行·联欢今年的国庆阅兵、群众游行、国庆联欢晚会三部曲都非常出乎我的意料,实在是太惊喜了,组织度这么高,组织能力这么强足以说明我国的体制在集中力量办大事这方面有着无与匹敌的优势,只要方向正确,中国人民总是能干出惊天动地的事业,这一点,从我中国人民解放军军史上就有许多明证。例如阅兵中给我印象最深刻的就是战旗方队,一百面英雄的旗帜,无数英勇的先烈们。其中有些部队本身可能出身于解放战争后期国民党方面的队伍,战斗力差,战斗意志弱,而起义、投诚、收编到了解放军中之后,仿佛脱胎换骨一般, ...