当前位置: 首页 > web >正文

滑动窗口-7

1652. 拆炸弹

题目来源:1652. 拆炸弹 - 力扣(LeetCode)

分析:

        1. 窗口固定为k 只不过移动方向随k对正负变化

        2. 我区分了 k > 0 and k < 0 的情况

        3. 在不同方向上进行逻辑移动,不用方向也移动的逻辑还不同,所以花费了比较多的时间来做这道“简单题”

我的解答:

class Solution:def decrypt(self, code: List[int], k: int) -> List[int]:if k == 0:return [0 for i in range(len(code))]if k > 0:ans = []ans_tmp = 0last_num = 0left = 0for right,num in enumerate(code):# inans_tmp += numleft = right + 1 - kif left < 0:continue# updateif left == 0:last_num = ans_tmpelse:ans.append(ans_tmp)# outans_tmp -= code[left]for right in range(k - 1):# in ans_tmp += code[right]left = right + 1 - kans.append(ans_tmp)ans_tmp -= code[left]ans.append(last_num)return anselse:ans = [0 for i in range(len(code))]ans_tmp = 0left = -1for right in range(-1,-len(code),-1):# inans_tmp += code[right]left = right - 1 - kif left >= 0:continueans[left + 1] = ans_tmpans_tmp -= code[left ] for right in range(0,k,-1):ans_tmp += code[right]left = right - kans[left] = ans_tmpans_tmp -= code[left - 1]return ans

题解:

class Solution:def decrypt(self, code: List[int], k: int) -> List[int]:n = len(code)ans = [0] * nr = k + 1 if k > 0 else n  # 第一个窗口的右开端点k = abs(k)s = sum(code[r - k: r])  # ans[0]for i in range(n):ans[i] = ss += code[r % n] - code[(r - k) % n]r += 1return ans

 总结:

        1. 找规律

        2. 我想我没有找到题解这个规律,应该是刷的题目,太少了,就导致解题思路以及思维方式比较局限

        3. 题解上面还有一个作者的分析思路,我认为该分析方法十分重要,通过手绘来寻找算法规律,然后开始敲代码

 

http://www.xdnf.cn/news/16367.html

相关文章:

  • 主要分布在背侧海马体(dHPC)CA1区域(dCA1)的时空联合细胞对NLP中的深层语义分析的积极影响和启示
  • ClickHouse 常用的使用场景
  • AWS WebRTC:我们的业务模式
  • [python][flask]flask蓝图使用方法
  • 【软件工程】构建软件合规防护网:双阶段检查机制的实践之道
  • Android studio自带的Android模拟器都是x86架构的吗,需要把arm架构的app翻译成x86指令?
  • FP16 和 BF16
  • 函数-变量的作用域和生命周期
  • 老题新解|奇偶数判断
  • 从Taro的Dialog.open出发,学习远程控制组件之【事件驱动】
  • OAuth 2.0 安全最佳实践 (RFC 9700) password 授权类型已经不推荐使用了,将在计划中移除
  • JS与Go:编程语言双星的碰撞与共生
  • vue2+node+express+MongoDB项目安装启动启动
  • go语言基础教程:【2】基础语法:基本数据类型(整形和浮点型)
  • js实现宫格布局图片放大交互动画
  • android app适配Android 15可以在Android studio自带的模拟器上进行吗,还是说必须在真机上进行
  • 无人机视觉模块技术解析
  • 【LeetCode Solutions】LeetCode 热题 100 题解(1 ~ 5)
  • [CSS]让overflow不用按shift可以滚轮水平滚动(纯CSS)
  • 【数据库】AI驱动未来:电科金仓新一代数据库一体机如何重构性能边界?
  • 半相合 - 脐血联合移植
  • Kingbasepostgis 安装实践
  • Go 官方 Elasticsearch 客户端 v9 快速上手与进阶实践*
  • R 语言绘制六种精美热图:转录组数据可视化实践(基于 pheatmap 包)
  • Redis替代方案:腾讯云TDSQL-C内存优化实战,TPS秒上涨
  • 大语言模型生成式人工智能企业应用
  • 水库大坝安全监测的主要内容
  • 微算法科技(NASDAQ:MLGO)采用分布式哈希表优化区块链索引结构,提高区块链检索效率
  • mac下 vscode 运行 c++无法弹出窗口
  • 《C++初阶之STL》【vector容器:详解 + 实现】