LeetCode_2100
题目如下图
这题恰好是浙江农信赞助的周赛题,《适合打劫银行的日子》,刑。
解题思路:
先是从前往后遍历找到前缀长度满足条件的所有节点,
再从后往前遍历找到前缀长度满足条件的节点,若该节点的前缀长度也满足条件,则入队列。
代码如下
1 class Solution { 2 public List<Integer> goodDaysToRobBank(int[] security, int time) { 3 int pre = 0,end = 0; 4 int len = security.length; 5 int[] preArr = new int[len];//记录前缀满足条件的节点 6 //List<Integer> preList = new LinkedList<>();用这个会超时V_V 7 List<Integer> ansList = new LinkedList<>(); 8 int rear = -1; 9 for(int i = 0; i < len; i++){ 10 if (security[i] <= rear) { 11 pre++; 12 } else { 13 pre = 0; 14 } 15 //security[i] <= rear ? pre++ : pre = 0; 16 rear = security[i]; 17 if(pre >= time){ 18 //preList.add(i); 19 preArr[i] = 1; 20 } 21 } 22 rear = - 1; 23 for(int i = len -1; i > -1; i--){ 24 if (security[i] <= rear) end++; 25 else end = 0; 26 rear = security[i]; 27 if(end >= time && preArr[i] == 1){ 28 ansList.add(i); 29 } 30 } 31 return ansList; 32 } 33 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理