leetcode
陌养
永远相信美好的事情正在发生
展开
-
123. 买卖股票的最佳时机 III 状态机java代码
采用状态机的方式,我们初始化f数组,第一个维度为第几天,当i为0时候为未购买股票,第二个维度为几次购买,当j为1的时候,为购买0次的状态,第三个维度为手中是否持有股票,0为未持有,1为持有股票。原创 2024-04-24 23:11:31 · 247 阅读 · 1 评论 -
PTA数据结构-07-图6 旅游规划
一、题目有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、原创 2021-04-20 20:55:38 · 234 阅读 · 0 评论 -
常用的prim算法优化之hdu继续畅通工程
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。题目链接#include<iostream> #include<iomanip> #include<algorithm> #include<cmath> using na原创 2021-04-20 20:35:51 · 94 阅读 · 0 评论 -
leetcode28--KMP算法的基础使用
题目描述:给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba”输出: -1使用java实现kmp,最常见的kmp模板。class Solution { public原创 2020-10-06 15:04:44 · 110 阅读 · 0 评论 -
leetcode 71. 简化路径 同时使用String的split分隔字符串
本题的关键在于使用split函数,能极大程度上的简化代码。String[] str = path.split("/");在本题中,使用到了栈和可变字符串1.使用split的方法分隔字符串,将结果存入字符串数组中。2.使用for循环的方法,进行判断,如果是 “…” 还要再判断是否为空才能弹出栈,如果不为空也不为 “.” 这说明当前元素是路径信息,入栈即可。3.如果不为空也不为 “.” 这说明当前元素是路径信息,入栈即可如果有元素,则使用 StringBuilder 来存放可变字符串,最后返回原创 2020-09-20 23:18:12 · 144 阅读 · 0 评论 -
关于对char字符判空的处理
判断是否为 ‘\0’for (i = 0;i < numRows;i++){ for (j = 0;j<=lie ; j++ ){ if (biao[i][j] != ' ' && biao[i][j] != '\0') stringBuilder.append(biao[i][j]); } }...原创 2020-09-14 17:33:17 · 812 阅读 · 0 评论 -
剑指 Offer 67. 把字符串转换成整数且处理数字越界
这题算法不是特别困难,主要是在判断数字数字越界的地方卡了很久。在每次数字拼接前,判断当前所求的数字是否大于最大值的 1 / 10, int bndry = Integer.MAX_VALUE / 10; 然后存在以下两种情况可能造成越界。result > bndry执行拼接10×result ≥ 2147483647越界result = bndry , x > 7执行拼接后是2147483648或者2147483649造成越界然后是本题ac代码class原创 2020-09-14 09:34:12 · 166 阅读 · 0 评论 -
利用单调栈解决 leetcode 496. 下一个更大元素 I
单调栈,顾名思义,指的是在栈中数字进行单调排列。在这道题使用单调栈,数字进行递减排列。这道题在leetcode上的链接https://leetcode-cn.com/problems/next-greater-element-i/下面贴一个单调栈的模板vector<int> nextGreaterElement(vector<int>& nums) { vector<int> ans(nums.size()); // 存放答案的数组 st原创 2020-08-20 23:02:47 · 157 阅读 · 0 评论 -
剑指 Offer 09 用两个栈实现队列题解
标题前置知识队列Queue是java中实现队列的接口,它总共只有6个方法,我们一般只用其中3个就可以了。Queue的实现类有LinkedList和PriorityQueue。最常用的实现类是LinkedList。Queue的6个方法分类:压入元素(添加):add()、offer()相同:未超出容量,从队尾压入元素,返回压入的那个元素。区别:在超出容量时,add()方法会对抛出异常,offer()返回false弹出元素(删除):remove()、poll()相同:容量大于0的时候,删除并返原创 2020-08-17 23:32:48 · 156 阅读 · 0 评论