找出最小开销。
思路:
出发点的加油站编号设为0,终点的加油站编号设为n,其他加油站编号按距离依次排序。
如果0号加油站的距离!=0,则无法出发,行驶距离为0.
从起点开始,寻找规则为,如果存在油价小于本加油站的油价的,则计入,
没有就计入油价最低的。
如此循环,如果能到达终点,输出总花销;不能,输
这是悦乐书的第251次更新,第264篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第118题(顺位题号是520)。给定一个单词,你需要判断其中大写字母的使用是否正确。当下列情况之一成立时,我们将单词中大写字母的用法定义为正确:
这个单词中的所有字母都是大写字母,如“US
说到进制转换,java已经封装了基本的方法,在竞赛中使用封装的方法自然能节省大量时间
另一位仁兄介绍的封装好的方法:
https://blog.csdn.net/m0_37961948/article/details/80438113
如果不想看上面的全部,我总结了两条基本方放,记下就可以随意转化:
题目描述
The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U and V as descendants.Given any two nodes in a
栈也是数据结构中重要数据结构,它分为链栈和数组栈,特性:元素先进后出,后进先出
读取也只能读取栈顶元素,栈的应用有以下几种:括号匹配,进制转换,与递归也有关系,判断回文,表达式计算(我会在以后文章专门写几篇介绍应用)
推荐在书写数据结构时,保留一个主函数进行测试
栈的源代码:
import ja
题目描述
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "(
题意:给出BST的前序序列,以及若干个查询。寻找BST中任意给定两个结点u,v的最低公共祖先(LCA)。
思路:
1、首先根据前序序列和中序序列构建好二叉搜索树(思考1:此处明明是BST,为何不在输入前序序列的过程中直接插入建树?这样做岂不是更方便?分析见最后)
2、利用二叉搜索树的性质寻找结点u和
概览
二叉树的链表和静态链表的定义
二叉树的遍历(先序遍历、中序遍历、后序遍历、层次遍历,前三者又分为递归和非递归)
重建二叉树
二叉排序树(BST)
完全二叉树(CBT)
平衡二叉树(AVL)
红黑树
二叉树结点的定义
struct Node{
int val;
Node *
题意:由前序序列和后序序列构建二叉树(保证树的结点值均不相同),若构建的二叉树唯一,输出Yes和其中序序列;若不唯一,输出No和任意一个二叉树的中序序列。
思路:首先,假定区间下标从0开始,即[0,n-1]。
1.一开始,前序序列的第一个结点和后序序列的最后一个结点相同,且为树的根结点。这一点是确
1066 Root of AVL Tree (25)(25 分)
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any
1123 Is It a Complete AVL Tree(30 分)
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any
题意:给出k个二叉搜索树的前序序列,判断该树是否为红黑树。
红黑树的定义:
结点的颜色非红即黑
根结点的颜色必须是黑色
每个叶子结点(指的是空结点,图中并没有画出来)都是黑色的
如果某个结点为红色,则它的孩子节点必须是黑色的。(表明从每个叶子到根的所有路径上不能有两个连续的红色节点。)
从任一节点
1110 Complete Binary Tree (25)(25 分)
Given a tree, you are supposed to tell if it is a complete binary tree.
Input Specification:
Each input file con
注意下单复数
#include<bits/stdc++.h>
using namespace std;
pair<string,string>pa;
int main()
{
int n;
scanf("%d",&n);
vector&
这是悦乐书的第252次更新,第265篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第119题(顺位题号是521)。给定一组两个字符串,您需要找到这组两个字符串中最长的不同子序列。最长的不同子序列被定义为这些字符串之一的最长子序列,并且此子序列不应该是其他字符串的任何子序
一个故事开头。
09年春晚,一个《不差钱》带飞了小沈阳,一夜之间大红大紫。随后一个采访中,作为师傅的本山大叔指导他这个得意门生。
原话大概意思是:“有点成就了肯定飘,你不要飘,要站在地上,不管干啥,你要记住你首先是一个二人转演员”。
算法的书籍,前前后后买了好几本,零零散散的看,效果不好,水平
题目描述:
插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。
每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到已排好序的链表中。
插入排序算法:
插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。
序
这一篇文章是算法专栏第一篇文章。算法这个栏目会连载常用的算法(代码为Java),欢迎大家给我留言讨论。
1.什么是算法
1.1 算法定义
通俗的讲,算法是对问题求解过程的一种描述,是为解决一类问题给出一个确定的,有限的操作序列。曾经
一.什么是括号匹配:
括号匹配就是利用计算机辨别表达式里面的括号是否书写成功
例如:
{()((a)) }这就是一个正确
(()() 这就是一个错误的
二.括号匹配的算法:
众所周知,括号分为花括号,大括号,小括号,{,[,(
但读取到左边的货号的时候将,左边的括号入栈
如果读取到},)],就
题目描述
给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1,2,3,4]
输出: [24,12,8,6]
说明: 请不要使用除法,且在 O(n) 时