LeetCode 题目总结 本博客不定期更新 LeetCode 题目总结,所有题目使用 Java 实现,小部分题目也提供 JavaScript 代码。我不追求一行 AC 但是我追求一题多解,比较常规的思路,解释清楚复杂度,代码可读性强。欢迎留言和评论,共同进步。这本是我自己用来复习的笔记,如果也能帮到你,那也是我的福报。 如果你想按类型刷题,可以参考我的标签。我做出的分类比 LC 官方的更细一些,比如我有如下展示的这些类型, 2020-03-18 #leetcode
[LeetCode] 二分查找模板 binary search 二分法是算法题里面一个比较基础但是很容易错的概念,一开始练习的时候由于不熟悉二分法的套路,反复出现死循环或者目标值找错,非常影响做题心情。我总结了如下几个模板。原则上这里的模板无论你使用哪一个,都可以解决二分法类型的问题,只不过有一些题目,比如寻找一个最大值/最小值的,可能某一个模板更适合,需要判断的条件较少。 如下模板是用Java实现的 模板一,找有序数组中是否存在一个目标值。注意 r 2021-01-12 #leetcode #java #binary search
给网站添加免费的SSL证书 自己曾经做了一个网站部署在一台 ubuntu 服务器上,但是由于一开始不会配置 SSL,所以花钱买了付费的 SSL。最近发现了 Let’s Encrypt,可以免费申请 SSL 证书,下面是详细的教程。 我的网站是一个 React 的项目,所以我的服务器上只是一个简单的 Node.js 环境 + Nginx。我主要参考了这个帖子。如果你是用其他的环境比如LAMP那一套的,请自行搜索其他的教程。 0 2024-11-02 #devops
[LeetCode] 3397. Maximum Number of Distinct Elements After Operations You are given an integer array nums and an integer k. You are allowed to perform the following operation on each element of the array at most once: Add an integer in the range [-k, k] to the element.R 2025-10-18 #leetcode #java #array #greedy #sort
[LeetCode] 3349. Adjacent Increasing Subarrays Detection I Given an array nums of n integers and an integer k, determine whether there exist two adjacent subarrays of length k such that both subarrays are strictly increasing. Specifically, check if there are 2025-10-13 #leetcode #java #array
[LeetCode] 2273. Find Resultant Array After Removing Anagrams You are given a 0-indexed string array words, where words[i] consists of lowercase English letters. In one operation, select any index i such that 0 < i < words.length and words[i - 1] and words 2025-10-13 #leetcode #java #hashmap #sort #string
[LeetCode] 2379. Minimum Recolors to Get K Consecutive Black Blocks You are given a 0-indexed string blocks of length n, where blocks[i] is either ‘W’ or ‘B’, representing the color of the ith block. The characters ‘W’ and ‘B’ denote the colors white and black, respec 2025-10-07 #leetcode #java #sliding window #sliding window with fixed size #string
[LeetCode] 1518. Water Bottles There are numBottles water bottles that are initially full of water. You can exchange numExchange empty water bottles from the market with one full water bottle. The operation of drinking a full water 2025-09-30 #leetcode #java #math #simulation
[LeetCode] 3484. Design Spreadsheet A spreadsheet is a grid with 26 columns (labeled from ‘A’ to ‘Z’) and a given number of rows. Each cell in the spreadsheet can hold an integer value between 0 and 105. Implement the Spreadsheet class: 2025-09-19 #leetcode #java #hashmap #string #design
[LeetCode] 3408. Design Task Manager There is a task management system that allows users to manage their tasks, each associated with a priority. The system should efficiently handle adding, modifying, executing, and removing tasks. Imple 2025-09-18 #leetcode #java #hashmap #design #heap