从leetCode写题总结的程序优化思路

简介: 从leetCode写题总结的程序优化思路

1:将子方法创建的缓存提升到父方法,作为子方法的参数,以减少创建所需要的时间和空间。

2:当已知字符串格式的时候,使用subString()而不是split来进行拆分

3:通过减少引用类型的访问次数,减少整体访问时间。

4:尽量减少判断的次数,并且最好别不要在循环或递归里写判断语句。

5: ArrayList用索引访问优先于foreach

6: 二叉树的遍历在能预估栈深度的情况下,一般遵循"带层遍历"原则,使用递归而不是辅助结构(队列、栈)。

目录
相关文章
|
1月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
31 8
|
3月前
|
算法 测试技术 C#
【动态规划】LeetCode2552:优化了6版的1324模式
【动态规划】LeetCode2552:优化了6版的1324模式
|
4月前
|
算法 测试技术 C++
【动态规划】LeetCode2552:优化了6版的1324模式
【动态规划】LeetCode2552:优化了6版的1324模式
|
9月前
|
机器学习/深度学习 存储 缓存
力扣70爬楼梯:思路分析+优化思路+代码实现+补充思考
力扣70爬楼梯:思路分析+优化思路+代码实现+补充思考
74 0
|
存储 算法
leetcode-每日一题1252. 奇数值单元格的数目(模拟优化)
时间复杂度:O(q * (m + n) + m * n) 其中q表示 indices 数组的长度,m、n为矩阵的行数和列数,遍历 indices 数组都要更新一次行列,总共需要O(q * (m + n))的时间,最后遍历一次矩阵,总共需要O(m * n)的时间
50 0
leetcode-每日一题1252. 奇数值单元格的数目(模拟优化)
|
存储 C++
【力扣·每日一题】689. 三个无重叠子数组的最大和 (C++ 前缀和优化dp 保存路径)
【力扣·每日一题】689. 三个无重叠子数组的最大和 (C++ 前缀和优化dp 保存路径)
81 0
【力扣·每日一题】689. 三个无重叠子数组的最大和 (C++ 前缀和优化dp 保存路径)
|
Java 程序员 开发者
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化
本文是《LeetCode第三题(Longest Substring Without Repeating Characters)三部曲》的第二篇,前一篇文章已经列出了完整的解题思路,今天来将此思路转化为具体的Java代码
LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之三:两次优化
刷力扣明白了官网代码的小心机(代码的优化)
刷力扣明白了官网代码的小心机(代码的优化)
90 0
|
机器学习/深度学习 算法
【刷穿 LeetCode】检测「环形数组是否存在循环」的三种方式:「朴素模拟」&「遍历标记(含优化)」
【刷穿 LeetCode】检测「环形数组是否存在循环」的三种方式:「朴素模拟」&「遍历标记(含优化)」
|
机器学习/深度学习 算法
[leetcode/lintcode 题解] 算法面试真题详解:程序检查
[leetcode/lintcode 题解] 算法面试真题详解:程序检查
[leetcode/lintcode 题解] 算法面试真题详解:程序检查