- 博客(22)
- 收藏
- 关注
原创 礼物的最大价值题目改动版本(记录思路)
剑指 Offer 47. 礼物的最大价值 题目改动版本题意: 应该是在在一个 m*n 的棋盘的每一格都有一个值,表示能量(能量值大于 0)。你可以从棋盘的左上角开始走,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的能量的价值,请计算你第一次走最多能拿到多少价值的礼物?然后把你拿过的能量的棋盘的位置上的能量值置为0,然后计算第二次走最多能拿到多少价值的礼物?解题思路:这个题目难点的地方在于需要对拿到最大能量的走过的路径需要进行记录处理然后更新能量矩阵,对下面的能量矩阵:[[
2022-05-09 11:34:46
152
原创 Ubuntu上非Root用户安装texlive
Ubuntu上非Root用户安装texlive因为在准备使用darshan的分析部分的工具时(darshan-job-summary.pl <trace file>.darshan)出现pdfLaTeX环境缺失的问题,然后又因为是没有root权限访问的账户,所以不能使用apt-get直接安装相关包sudo apt-get install texlive-full,而且因为网络问题,所以不太方便使用轻量一些的安装方式,于是参考采用了使用镜像的方式进行安装镜像下载:清华镜像:https://m
2022-04-06 08:31:12
809
原创 并行系统学习之MPI的安装
在Ubuntu系统上安装MPI由于没有root权限,因此采用源码安装包的方式进行安装,首先官网下载安装包用哪个版本的都可以,这里我用的是3.4.2版本的,解压文件夹tar -zxvf mpich-3.4.2.tar.gz,然后进入解压后的文件夹进行编译,由于没有root权限,所以使用-prefix=<path>指定安装目录,完整编译指令为./configure --disable-fortran --with-device=ch4:ofi -prefix=<path_to_mpich
2022-03-28 20:40:52
3275
原创 【LeetCode刷题记录】剑指 Offer 31. 栈的压入、弹出序列
剑指 Offer 31. 栈的压入、弹出序列题意:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。示例一:输入: pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出: true解释: 我们可以按以下顺序执行:push
2022-03-25 11:12:16
173
原创 【LeetCode刷题记录】109.有序链表转换二叉搜索树
109.有序链表转换二叉搜索树题意:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5解题思路:其实解题思路比较
2022-03-24 11:35:41
148
原创 二叉树前序、中序、后序遍历的非递归实现
二叉树的前序、中序、后序遍历的非递归实现二叉树的前序遍历非递归实现不进行递归的前序遍历的实现,需要借用辅助栈空间,首先把根节点押入栈,然后当栈不空的时候,取栈顶,打印,然后按照右子树节点先入栈,然后左子树节点入栈的顺序,直到栈为空,完成二叉树的先序遍历序列的打印java实现 public List<Integer> preorderTraversal(TreeNode root) { Stack<TreeNode> stack = new Stack<T
2022-03-23 17:05:54
1727
原创 根据二叉树的先序、中序、后序遍历确定二叉树
根据二叉树的先序,中序,后序遍历确定二叉树我们知道根据二叉树的先序和中序或者是二叉树的中序和后序能够确定唯一的一棵二叉树,先记录一下java实现代码二叉树的先序和中序遍历确定二叉树我们能够知道先序的第一个节点是根节点,此时根据根节点去找在中序遍历中的位置,左边就是左子树的节点,右边就是右子树的节点,那么我们可以把先序和中序序列中的左右子树节点的序列范围找到,然后递归继求解遍历,最后完成二叉树的构建,例如:先序:{1,5,3,2,7}中序:{3,5,2,1,7}此时能进行划分有:根节点{1}左
2022-03-22 11:54:52
3585
原创 【LeetCode刷题记录】剑指 Offer 36. 二叉搜索树与双向链表
剑指 Offer 36. 二叉搜索树与双向链表题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。为了让您更好地理解问题,以下面的二叉搜索树为例:我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。特别地,我们希望可以就地完
2022-03-21 11:43:42
118
原创 【LeetCode刷题记录】3月20日记录
3月20日记录剑指 Offer 68 - I. 二叉搜索树的最近公共祖先题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]、...
2022-03-20 17:27:38
135
原创 【LeetCode刷题记录】剑指 Offer 35. 复杂链表的复制
剑指 Offer 35. 复杂链表的复制题目:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例一:输入: head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]示例二:输入:head = [[1,1],[2,1]]输出:[[1,1
2022-03-18 22:22:48
166
原创 【LeetCode刷题记录】 剑指 Offer 56 - I. 数组中数字出现的次数
剑指 Offer 56 - I. 数组中数字出现的次数题意:一个整型数组* nums *里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例一输入: nums = [4,1,4,6]输出: [1,6] 或 [6,1]示例二输入: nums = [1,2,10,4,1,4,3,3]输出: [2,10] 或 [10,2]题目链接解题思路:假设要找的数字分别是a和b,因为除了这两个数字之外,其他的数字都出现了
2022-03-17 20:54:46
147
原创 【Leetcode刷题记录】347.前K个高频元素
347.前K高频元素题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]解题思路:利用桶排序的思想,对数字出现的频次进行桶排序,首先用HashMap记录每个数字出现的次数,并在此过程中记录最大的频次,之后创建最大频次数量的桶来进行排序,遍历HashMap,把对应频次的数字放到对应的桶里面,之后在从最大频次开始倒着计数记录结果直到统计了k
2022-03-15 20:49:25
673
原创 【Leetcode刷题记录】524. 通过删除字母匹配到字典里最长单词
524. 通过删除字母匹配到字典里最长单词题目给你一个字符串 s 和一个字符串数组 dictionary ,找出并返回 dictionary 中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。如果答案不止一个,返回长度最长且字母序最小的字符串。如果答案不存在,则返回空字符串。示例1:输入:s = “abpcplea”, dictionary = [“ale”,“apple”,“monkey”,“plea”]输出:“apple”解题想法解题思路其实比较清晰,就是首先对给的待匹配字
2022-03-14 16:09:31
537
原创 【Leetcode刷题记录】665.非递减数列
665.非递减数列解题想法:刚开始想着简单的就是直接判断存在相邻递减的情况,即判断存在nums[i]>nums[i-1]的情况,但是存在不满足的用例:后来想遍历的时候如果存在递减的情况,就用nums[i-1]更新nums[i],即下图用例的情况:然后发现还是有不满足的情况,即下例:于是就选择用两次遍历,分别判断,当从左往右遍历的时候,选择用左侧的更大的值更新右侧继续判断,如果满足,返回,否则从右往左遍历,选择用右侧更小的值更新继续判断,此时注意最后返回判断一定是存在一次修改public
2022-03-13 16:06:11
1011
原创 配置本地Markdown文件中图片的公共库
配置Markdown文件图片数据公共访问一、个人配置需求自己喜欢使用Markdown编辑器Typora做一些记录,插入图片信息很方便,直接截图插入会自动保存在本地的文件夹中,但是在分享这个md文件的时候会出现其他人无法访问图片的情况,为了提高笔记的移植的可阅读性,决定查找相关教程,设置能够公共访问图片的方式。学到了新的词:图床:图床一般是指储存图片的服务器二、使用GitHub配置MarkDown图床参考使用GitHub配置MarkDown图床的博客教程配置图床的设置操作:...
2021-10-18 16:44:55
509
原创 CF893 C. Rumor
#include#includeusing namespace std;typedef long long int ll;const int maxn = 1e5+5;int f[maxn],cost[maxn];void Init(int n){ for(int i=1;i<=n;i++){ f[i] = i; }}int Find(int x){
2018-01-26 21:23:48
532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1