力扣每日一题:2646. 最小化旅行的价格总和(2023-12-06)

力扣每日一题 题目:2646. 最小化旅行的价格总和 日期:2023-12-06 用时:30 m 14 s 时间:8ms 内存:42.98MB 思路:先统计旅行中每个节点路过的次数(dfs方法),再计算减半后的价格之和的最小值(dp方法),最后比较下减半和未减半的价格。dp方法中,对于相邻的父子节点有两种情况: 如果父节点价格不变,那么子节点的价格取减半和不变两种情况的最小值如果父节点价格减半,那么...

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

题目 解题思路 先排除特殊情况,k==1即不用翻转,节点为null则当前函数内也不需要翻转;统计是否有k个数据来判断是否需要翻转;通过while循环对k个节点进行翻转,尾节点传入下一次递归当中;返回首节点,并赋值给上一个尾节点的next。 代码展示 class Solution { public ListNode reverseKGroup(ListNode head, int k) { if(k =...

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

题目 解题思路 先从一边获取所有卡片;逐个替换成另一侧的卡片;每次替换后比较大小选择最大值; 代码展示 class Solution { public int maxScore(int[] cardPoints, int k) { int ans = 0; //先全部从左边取值 for (int i = 0; i < k; i++){ ans += cardPoints[i]; } int n = c...

力扣题:字符串的反转-11.22

力扣题-11.22 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:541. 反转字符串 II 解题思想:进行遍历翻转即可 class Solution(object): def reverseStr(self, s, k): """ :type s: str :type k: int :rtype: str """ t = list(s) for i in range(0, len(t)...

437. 路径总和 III --力扣 --JAVA

题目 解题思路 从每个节点开始向子节点遍历累加,当前达到目标值是结果加1;方法一递归调用方法一;方法二以当前节点的值为起始累加,符合结果则加1; 代码展示 class Solution { int ans = 0; int target; public int pathSum(TreeNode root, int targetSum) { target = targetSum; dfs1(root);...

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

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

力扣题:单词-11.20

力扣题-11.20 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:58. 最后一个单词的长度 解题思想:按空格划分,然后统计单词长度即可 class Solution(object): def lengthOfLastWord(self, s): """ :type s: str :rtype: int """ word_list = s.split() return(len(word_...

力扣题:字符的统计-11.29

力扣题-11.29 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:032. 有效的字母异位词 解题思想:直接遍历即可 class Solution(object): def isAnagram(self, s, t): """ :type s: str :type t: str :rtype: bool """ if s==t: return False if len(s)!=len(t...

240. 搜索二维矩阵 II -- 力扣 --JAVA

题目 解题思路一 逐个遍历 代码展示 class Solution { public boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length; int n = matrix[0].length; for (int i = 0; i < m; i++){ for (int j = 0; j < n; j++){ i...

142. 环形链表 II --力扣 --JAVA

题目 解题思路 记录曾经走过的节点,如果再次出现则存在环,否则该链表不存在环。 代码展示 public class Solution { public ListNode detectCycle(ListNode head) { List<ListNode> store = new ArrayList<>(); while (head != null){ if(store.contains(head))...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.012612(s)
2024-05-02 16:36:47 1714639007