文章 2023-12-04 来自:开发者社区

1038. 从二叉搜索树到更大和树 --力扣 --JAVA

 题目给定一个二叉搜索树 root (BST),请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。提醒一下, 二叉搜索树 满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。解题思路由题意可知需要先获取右子树的值累加再赋值给当前节点,因此使用递归;创建全局变量用来存储累加后的值;右子树是先递....

1038. 从二叉搜索树到更大和树 --力扣 --JAVA
文章 2023-12-03 来自:开发者社区

138. 随机链表的复制 --力扣 --JAVA

 题目给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都....

138. 随机链表的复制 --力扣 --JAVA
文章 2023-12-03 来自:开发者社区

1423. 可获得的最大点数 --力扣 --JAVA

 题目几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。你的点数就是你拿到手中的所有卡牌的点数之和。给你一个整数数组 cardPoints 和整数 k,请你返回可以获得的最大点数。解题思路先从一边获取所有卡片;逐个替换成另一侧的卡片;每次替换后比较大小选择最大值;代码展....

1423. 可获得的最大点数  --力扣  --JAVA
文章 2023-12-02 来自:开发者社区

25. K 个一组翻转链表 --力扣 --JAVA

 题目给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。解题思路先排除特殊情况,k==1即不用翻转,节点为null则当前函数内也不需要翻转;统计是否有k个数据来判断....

25. K 个一组翻转链表 --力扣 --JAVA
文章 2023-12-02 来自:开发者社区

1094. 拼车 --力扣 --JAVA

 题目车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向)给定整数 capacity 和一个数组 trips ,  trip[i] = [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客,接他们和放他们的位置分别是 fromi 和 toi 。这些位置是从汽车的初始位置....

1094. 拼车 --力扣 --JAVA
文章 2023-12-01 来自:开发者社区

24. 两两交换链表中的节点 -- 力扣 --JAVA

 题目给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。解题思路排除无法交换的情况,即:当前节点为空或当前节点无下一个节点;获取当前节点的下一个节点,让当前节点的下一个节点指向下下个节点;下一个节点指向当前节点;代码展示class Solution { public ListNode swapPa...

24. 两两交换链表中的节点 -- 力扣 --JAVA
文章 2023-12-01 来自:开发者社区

2661. 找出叠涂元素 --力扣 --JAVA

 题目给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。请你找出 arr 中在 mat 的某一行或某一列上都被涂色且下标最小的元素,并返回其下标 i 。解题思路先将元素和位置通过m....

2661. 找出叠涂元素 --力扣 --JAVA
文章 2023-11-30 来自:开发者社区

1657. 确定两个字符串是否接近 --力扣 --JAVA

 题目如果可以使用以下操作从一个字符串得到另一个字符串,则认为两个字符串 接近 :操作 1:交换任意两个 现有 字符。 例如,abcde -> aecdb操作 2:将一个 现有 字符的每次出现转换为另一个 现有 字符,并对另一个字符执行相同的操作。 例如,aacabb -> bbcbaa(所有 a 转化为 b ,而所有的 b 转换为 a )你可以根据需要对任意一个字符串多次....

1657. 确定两个字符串是否接近  --力扣  --JAVA
文章 2023-11-30 来自:开发者社区

19. 删除链表的倒数第 N 个结点 --力扣 --JAVA

 题目给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。解题思路删除链表的倒数第n个节点,需要从链表末尾开始计数;设立私有的全局变量用于统计;因为是单向链表,所以需要通过递归获取需要删除的节点的上一个节点;因为是倒置所以需要在递归后进行计数;创建标志位区分特殊情况,需要删除的节点为首节点则无法获取上一节点;在结果返回时判断是否为首节点。代码展示class So....

19. 删除链表的倒数第 N 个结点 --力扣 --JAVA
文章 2023-11-29 来自:开发者社区

225. 用队列实现栈 --力扣 --JAVA

 题目请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。实现 MyStack 类:void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元素。int top() 返回栈顶元素。boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。注意:你只能....

225. 用队列实现栈 --力扣 --JAVA

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

算法编程

开发者社区在线编程频道官方技术圈。包含算法资源更新,周赛动态,每日一题互动。

+关注