IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> ARTS Week 29 -> 正文阅读

[数据结构与算法]ARTS Week 29

Algorithm

本周的 LeetCode 题目为 334. 递增的三元子序列

给你一个整数数组 nums ,判断这个数组中是否存在长度为 3 的递增子序列。

如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true ;否则,返回 false

输入:nums = [1,2,3,4,5]
输出:true
解释:任何 i < j < k 的三元组都满足题意

本题可以使用贪心法进行求解,先初始化最小值(minVal)和第二最小值(secondVal)都是 Integer.MAX_VALUE。接下来进行遍历数组,当 nums[i] 小于 minVal 时,则将 minVal 更新为 nums[i];当 minVal < nums[i] < secondVal 时,则将 secondVal 更新为 nums[i];若 nums[i] > secondVal,则说明存在符合题意要求的三元组。若数组遍历结束仍未出现 nums[i] > secondVal 的情况,则说明不存在符合要求的三元组。

class Solution {
    public boolean increasingTriplet(int[] nums) {
        int minVal = Integer.MAX_VALUE;
        int secondMinVal = Integer.MAX_VALUE;
        boolean ans = false;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] <= minVal) {
                minVal = nums[i];
            } else if (nums[i] <= secondMinVal) {
                secondMinVal = nums[i];
            } else {
                ans = true;
                break;
            }
        }
        return ans;
    }
}

Review

本周 Review 的英文文章为:为什么你应该编写糟糕的代码,且同时感觉良好

编写好的代码可以更好地适应未来的世界,但在软件中,我们很少知道未来的会怎样,通常不确定性由以下原因导致:

  • 不懂技术
  • 不懂业务
  • 不了解用户
  • 不清楚系统的数据大小
  • 不知道代码的寿命
  • 不知道的未知

程序员的长期价值是通过尽快学习创造,这也就是为什么需要编写更多糟糕的代码,下面是作者列举的一些原因:

  1. 培养编写代码的能力:如果你想学习如何编写代码,那么最好的方式就是去练习,通过练习,下一次将会变得更加容易并避免问题
  2. 重新获得创作的喜悦:编写糟糕的代码意味着专注于尽快获得结果,这意味着很容易获得成功和满足的感觉
  3. 了解代码和系统因何失败:失败是最宝贵的学习机会,当出现问题后,解决编写代码中的问题将会提高你的学习能力
  4. 了解如何调试:编写糟糕的代码时,将会给我更多机会尝试调试
  5. 探索设计空间:因为编写了糟糕的代码,让后续的重构设计有了更多的改进空间
  6. 降低期望会释放更多的创造力和思想

Tip

C/C++语言中 extern 除了指定声明外,当它和"C"连用时,将告诉编译器按照 C语言的规则去解析,而不是C++的规则,例如 extern "C" void fun(int a, int b); 这样就可避免C++对fun函数的重载了。

Share

周末因为临时的事情打乱了计划,没有来得及按时发布,只好今天来填坑。看来以后还是要多多提早准备,这样才能避免类似上周末的事情发生,抵抗未知的风险。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:43:30  更:2022-03-16 22:50:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:00:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码