当前位置: 首页 > news >正文

leetCode热题10-15 解题代码,思路

前言

计划做一系列算法题的文章,因为自己这块确实比较薄弱,但又很重要!写这篇文章前,我已经刷了一本剑指offer,leetcode top150道,牛客某题库106道 这个样子吧,感觉题量算是入门了吧?个人感觉还是入门级别,因为最开始的题完全是硬刷,全是混个脸熟。到现在才开始对里面的门门道道研究,总结。
所以打算从这篇文章开始,静下心来过一遍。留下自己的足迹也算是给自己打气吧!


leetcode

  • 前言
  • 1 ✔ [21]合并两个有序链表 Easy 2023-02-22 222
  • 2 [102]二叉树的层序遍历 Medium 2022-09-21 202
  • 3 ✔ [33]搜索旋转排序数组 Medium 2023-03-08 197
  • 4 ✔ [20]有效的括号 Easy 2023-01-12 194
  • 5 ✔ [5]最长回文子串 Medium 2023-03-05 193
  • 6 ✔ [121]买卖股票的最佳时机 Easy 2023-01-12 192

1 ✔ [21]合并两个有序链表 Easy 2023-02-22 222

//将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
//
//
//
// 示例 1:
//
//
//输入:l1 = [1,2,4], l2 = [1,3,4]
//输出:[1,1,2,3,4,4]
//
//
// 示例 2:
//
//
//输入:l1 = [], l2 = []
//输出:[]
//
//
// 示例 3:
//
//
//输入:l1 = [], l2 = [0]
//输出:[0]
//
//
//
//
// 提示:
//
//
// 两个链表的节点数目范围是 [0, 50]
// -100 <= Node.val <= 100
// l1 和 l2 均按 非递减顺序 排列
//
//
// Related Topics 递归 链表 👍 2826 👎 0

自测代码

public class P21_MergeTwoSortedLists{public static void main(String[] args) {int[] ints = {1, 2, 4};ListNode listNode = new ListNode(ints);int[] ints2 =  {1,3,4};ListNode listNode2 = new ListNode(ints2);//测试代码Solution solution = new P21_MergeTwoSortedLists().new Solution();ListNode listNode1 = solution.mergeTwoLists(listNode, listNode2);System.out.println(listNode1.toString());}//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode listNode = new ListNode(0);ListNode res = listNode;while (list1 != null || list2 != null ){if (list1 == null){listNode.next = list2;return  res.next;}if(list2 == null){listNode.next = list1;return  res.next;}if (list1.val > list2.val) {listNode.next = list2;list2 = list2.next;}else {listNode.next = list1;list1 = list1.next;}listNode = listNode.next;}return res.next;}
}
//leetcode submit region end(Prohibit modification and deletion)}

提交代码

class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode listNode = new ListNode(0);ListNode res = listNode;while (list1 != null || list2 != null ){if (list1 == null){listNode.next = list2;return  res.next;}if(list2 == null){listNode.next = list1;return  res.next;}if (list1.val > list2.val) {listNode.next = list2;list2 = list2.next;}else {listNode.next = list1;list1 = list1.next;}listNode = listNode.next;}return res.next;}
}

2 [102]二叉树的层序遍历 Medium 2022-09-21 202

//给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
//
//
//
// 示例 1:
//
//
//输入:root = [3,9,20,null,null,15,7]
//输出:[[3],[9,20],[15,7]]
//
//
// 示例 2:
//
//
//输入:root = [1]
//输出:[[1]]
//
//
// 示例 3:
//
//
//输入:root = []
//输出:[]
//
//
//
//
// 提示:
//
//
// 树中节点数目在范围 [0, 2000] 内
// -1000 <= Node.val <= 1000
//
//
// Related Topics 树 广度优先搜索 二叉树 👍 1604 👎 0

自测代码

public class P102_BinaryTreeLevelOrderTraversal{public static void main(String[] args) {//测试代码Solution solution = new P102_BinaryTreeLevelOrderTraversal().new Solution();String data = "[3,9,20,null,null,15,7]";TreeNode treeNode = mkTree(data);List<List<Integer>> lists = solution.levelOrder(treeNode);for (int i = 0; i < lists.size(); i++) {System.out.println();List<Integer> integers = lists.get(i);for (int i1 = 0; i1 < integers.size(); i1++) {System.out.print("  " + integers.get(i1));}}}//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {Queue<TreeNode> queue = new ArrayDeque<>();List<List<Integer>> res = new ArrayList<>();if(root != null){queue.add(root);}if (!queue.isEmpty()) {do {queue = check(queue, res);}while (!queue.isEmpty()) ;}return res;}public Queue<TreeNode> check(Queue<TreeNode> queue,List<List<Integer>> data){Queue<TreeNode> res = new ArrayDeque<>();ArrayList<Integer> integers = new ArrayList<>();while (!queue.isEmpty() ){TreeNode poll = queue.poll();if (poll == null) {break;}int val = poll.val;integers.add(val);TreeNode left = poll.left;if (left != null) {res.add(left);}TreeNode right = poll.right;if (right != null) {res.add(right);}}data.add(integers);return res;}}

提交代码

class Solution {public List<List<Integer>> levelOrder(TreeNode root) {Queue<TreeNode> queue = new ArrayDeque<>();List<List<Integer>> res = new ArrayList<>();if(root != null){queue.add(root);}if (!queue.isEmpty()) {do {queue = check(queue, res);}while (!queue.isEmpty()) ;}return res;}public Queue<TreeNode> check(Queue<TreeNode> queue,List<List<Integer>> data){Queue<TreeNode> res = new ArrayDeque<>();ArrayList<Integer> integers = new ArrayList<>();while (!queue.isEmpty() ){TreeNode poll = queue.poll();if (poll == null) {break;}int val = poll.val;integers.add(val);TreeNode left = poll.left;if (left != null) {res.add(left);}TreeNode right = poll.right;if (right != null) {res.add(right);}}data.add(integers);return res;}}

主要是使用了队列的特性,然后通过新建一个方法更清晰的区分,每一层的数据

3 ✔ [33]搜索旋转排序数组 Medium 2023-03-08 197

//整数数组 nums 按升序排列,数组中的值 互不相同 。
//
// 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[
//k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2
//,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。
//
// 给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。
//
// 你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。
//
//
//
// 示例 1:
//
//
//输入:nums = [4,5,6,7,0,1,2], target = 0
//输出:4
//
//
// 示例 2:
//
//
//输入:nums = [4,5,6,7,0,1,2], target = 3
//输出:-1
//
// 示例 3:
//
//
//输入:nums = [1], target = 0
//输出:-1
//
//
//
//
// 提示:
//
//
// 1 <= nums.length <= 5000
// -10⁴ <= nums[i] <= 10⁴
// nums 中的每个值都 独一无二
// 题目数据保证 nums 在预先未知的某个下标上进行了旋转
// -10⁴ <= target <= 10⁴
//
//
// Related Topics 数组 二分查找 👍 2422 👎 0

自测代码


public class P33_SearchInRotatedSortedArray{public static void main(String[] args) {//测试代码Solution solution = new P33_SearchInRotatedSortedArray().new Solution();String data = "[4,5,6,7,0,1,2]";int[] ints = StrToIntArray(data);System.out.println(solution.search(ints, 0));}//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {public int search(int[] nums, int target) {int num = nums.length;int res = -1;if (nums.length == 0){return  res;}if ( num == 1 ) {if (nums[0] == target) {return 0;}else {return res;}}int r = 0;int l = num-1;while (r <= l){int mid = (l-r)/2 +r;if ( nums[mid] == target ) {return mid;}if (nums[r] <= nums[mid] ) {if (  nums[r] <= target && target < nums[mid] ) {l = mid -1 ;}else {r = mid +1;}}else{if (target <= nums[l] && target > nums[mid] ) {r = mid +1 ;}else{l = mid -1;}}}return res;}
}
//leetcode submit region end(Prohibit modification and deletion)}

提交代码

class Solution {public int search(int[] nums, int target) {int num = nums.length;int res = -1;if (nums.length == 0){return  res;}if ( num == 1 ) {if (nums[0] == target) {return 0;}else {return res;}}int r = 0;int l = num-1;while (r <= l){int mid = (l-r)/2 +r;if ( nums[mid] == target ) {return mid;}if (nums[r] <= nums[mid] ) {if (  nums[r] <= target && target < nums[mid] ) {l = mid -1 ;}else {r = mid +1;}}else{if (target <= nums[l] && target > nums[mid] ) {r = mid +1 ;}else{l = mid -1;}}}return res;}
}

中等难度,笔者之前也刷到过,但是还是想了很久。
第一: 看错了题目,以为要求旋转之前 target的下标
第二:善用二分查找方法, 遇到查找的时候想想二分方法,二分方法有一个特性就是可以直接舍弃一半数据,用另一半数据计算,所以当有一部分条件不是有序的时候,二分还是可以使用。
第三:边界值判断, 如果直接把mind赋值给左或者右,可能会导致死循环,因为 只有两个数的时候做除法mind值可能一直和左下标相同。
所以之后在自己声明了左右指针的时候,赋值时最好把中间值+1或者-1。
另外 循环条件也需要改成<=或者>= 因为 +1 / -1之后很可能导致 两个数相等,这个时候需要有等于的条件继续循环判断

4 ✔ [20]有效的括号 Easy 2023-01-12 194

//给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
//
// 有效字符串需满足:
//
//
// 左括号必须用相同类型的右括号闭合。
// 左括号必须以正确的顺序闭合。
// 每个右括号都有一个对应的相同类型的左括号。
//
//
//
//
// 示例 1:
//
//
//输入:s = “()”
//输出:true
//
//
// 示例 2:
//
//
//输入:s = “()[]{}”
//输出:true
//
//
// 示例 3:
//
//
//输入:s = “(]”
//输出:false
//
//
//
//
// 提示:
//
//
// 1 <= s.length <= 10⁴
// s 仅由括号 ‘()[]{}’ 组成
//
//
// Related Topics 栈 字符串 👍 3786 👎 0

自测代码

public class P20_ValidParentheses{public static void main(String[] args) {//测试代码Solution solution = new P20_ValidParentheses().new Solution();String s = "]";solution.isValid(s);}//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {public boolean isValid(String s) {HashMap<String, String> hashMap = new HashMap<>();hashMap.put("(",")");hashMap.put("{","}");hashMap.put("[","]");String[] split = s.split("");int length = split.length;Stack<String> data = new Stack<>();try{for (int i = 0; i < length; i++) {String s1 = hashMap.get(split[i]);if (s1 == null) {String pop = data.pop();if (pop == null || !pop.equals(split[i])) {return false;}}else{data.add(s1);}}}catch (Exception e){return false;}if (!data.empty()) {return  false;}return true;}}
//leetcode submit region end(Prohibit modification and deletion)}

提交代码

class Solution {public boolean isValid(String s) {HashMap<String, String> hashMap = new HashMap<>();hashMap.put("(",")");hashMap.put("{","}");hashMap.put("[","]");String[] split = s.split("");int length = split.length;Stack<String> data = new Stack<>();try{for (int i = 0; i < length; i++) {String s1 = hashMap.get(split[i]);if (s1 == null) {String pop = data.pop();if (pop == null || !pop.equals(split[i])) {return false;}}else{data.add(s1);}}}catch (Exception e){return false;}if (!data.empty()) {return  false;}return true;}}

对我来说没有太大难度了,感觉对字符串操作的我貌似都擅长一些。
这道题目就是利用了一下栈的先进先出特性

5 ✔ [5]最长回文子串 Medium 2023-03-05 193

//给你一个字符串 s,找到 s 中最长的回文子串。
//
// 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。
//
//
//
// 示例 1:
//
//
//输入:s = “babad”
//输出:“bab”
//解释:“aba” 同样是符合题意的答案。
//
//
// 示例 2:
//
//
//输入:s = “cbbd”
//输出:“bb”
//
//
//
//
// 提示:
//
//
// 1 <= s.length <= 1000
// s 仅由数字和英文字母组成
//
//
// Related Topics 字符串 动态规划 👍 6257 👎 0

动态规划 这个问题我其实已经写了好几遍了,但是这次再做还是做不出来,或者想到的方法非常复杂。感觉还是没有完全掌握动态规划
因此,我特地去学习了动态规划相关的知识。
首先 动态规划是解决 有重复计算,可以拆分成子问题的一类问题的解决方案。
主要表现 求最短路径,最大回文子序列,多少种走法。
分析原问题 =》找出子问题 =》 找出子问题和原问题的关系 =》 解决子问题 并记录答案=》根据子问题 解决原问题。
正确子问题: 一般情况下都比较简单,特点 一般是 个数少,逻辑和原问题有关联
记录子问题答案 : 通过记录子问题答案,帮助解决原问题,减少重复计算,一般通过数组,二维数组来做。

这道题目 求最长回文子序列,
首先回文子序列 如果满足,那么去调开头和结尾的字母,依然满足是回文子序列。
如果一直去除,那么就会变成单个字母或者两个相同的字母,
利用这个特性,就可以找到子问题。

因为子问题和原问题的连接点 是两边添加参数,所以一定要注意动态规划的循环顺序

然后就是边界值的判断,
只有一个的时候肯定是回文串,两个的时候只需要判断两个是否相等。

自测代码

public class P5_LongestPalindromicSubstring {public static void main(String[] args) {//测试代码Solution solution = new P5_LongestPalindromicSubstring().new Solution();String s = "bb";System.out.println(solution.longestPalindrome(s));}//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)class Solution {public String longestPalindrome(String s) {char[] chars = s.toCharArray();int length = chars.length;/*简单的动态规划都是记录一个值,这个最长回文子序列可以通过记录左右两个值*/Boolean[][] data  = new Boolean[length][length];data[0][0] = true;int[] res = new int[2];res[0] = 0;res[1] = 0;for (int i = 1; i < length; i++) {for (int j = 0; j < i; j++) {/*长度小于三的情况*/if (i - j < 3) {if (chars[i] == chars[j]) {data[j][i] = true;}else {data[j][i] = false;}} else if (chars[i] == chars[j] &&  data[j+1][i-1]   ) {data[j][i] = true;}else{data[j][i] = false;}if (data[j][i]) {if (res[1] - res[0] <= i -j) {res[0] = j;res[1] = i;}}}}//            0 1 2 3 4return s.substring(res[0],res[1]+1);}}
//leetcode submit region end(Prohibit modification and deletion)}

提交代码

    class Solution {public String longestPalindrome(String s) {char[] chars = s.toCharArray();int length = chars.length;/*简单的动态规划都是记录一个值,这个最长回文子序列可以通过记录左右两个值*/Boolean[][] data  = new Boolean[length][length];data[0][0] = true;int[] res = new int[2];res[0] = 0;res[1] = 0;for (int i = 1; i < length; i++) {for (int j = 0; j < i; j++) {/*长度小于三的情况*/if (i - j < 3) {if (chars[i] == chars[j]) {data[j][i] = true;}else {data[j][i] = false;}} else if (chars[i] == chars[j] &&  data[j+1][i-1]   ) {data[j][i] = true;}else{data[j][i] = false;}if (data[j][i]) {if (res[1] - res[0] <= i -j) {res[0] = j;res[1] = i;}}}}//            0 1 2 3 4return s.substring(res[0],res[1]+1);}}

6 ✔ [121]买卖股票的最佳时机 Easy 2023-01-12 192

//给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
//
// 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
//
// 返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
//
//
//
// 示例 1:
//
//
//输入:[7,1,5,3,6,4]
//输出:5
//解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
// 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
//
//
// 示例 2:
//
//
//输入:prices = [7,6,4,3,1]
//输出:0
//解释:在这种情况下, 没有交易完成, 所以最大利润为 0。
//
//
//
//
// 提示:
//
//
// 1 <= prices.length <= 10⁵
// 0 <= prices[i] <= 10⁴
//
//
// Related Topics 数组 动态规划 👍 2672 👎 0

配合上一道也是动态规划问题,正好巩固一下
这道题目 相对来说简单,
还是通过找关系,
求最大收益,我就先求每天的最大收益,每天的最大收益和买入时的价格有关,就记录能够买入的最小价格,
循环的顺序从前往后,子问题就和主问题联系起来了

自测代码

public class P121_BestTimeToBuyAndSellStock{public static void main(String[] args) {//测试代码Solution solution = new P121_BestTimeToBuyAndSellStock().new Solution();String data = "[7,1,5,3,6,4]";System.out.println(solution.maxProfit(ArrayUtil.StrToIntArray(data)));}//力扣代码
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {public int maxProfit(int[] prices) {int len = prices.length;int min = Integer.MAX_VALUE;int res = 0;for (int i = 0; i < len; i++) {min = prices[i] <min ? prices[i] : min;res = prices[i] - min > res ? prices[i] - min : res;}return res;}
}
//leetcode submit region end(Prohibit modification and deletion)}

提交代码

class Solution {public int maxProfit(int[] prices) {int len = prices.length;int min = Integer.MAX_VALUE;int res = 0;for (int i = 0; i < len; i++) {min = prices[i] <min ? prices[i] : min;res = prices[i] - min > res ? prices[i] - min : res;}return res;}
}

相关文章:

leetCode热题10-15 解题代码,思路

前言 计划做一系列算法题的文章&#xff0c;因为自己这块确实比较薄弱&#xff0c;但又很重要&#xff01;写这篇文章前&#xff0c;我已经刷了一本剑指offer&#xff0c;leetcode top150道&#xff0c;牛客某题库106道 这个样子吧&#xff0c;感觉题量算是入门了吧&#xff1…...

同步辐射GISAXS和GIWAXS的原理及应用领域

同步辐射GISAXS和GIWAXS是两种常用的同步辐射X射线衍射技术&#xff0c;它们在材料科学、化学、生物学、物理学等领域中广泛应用。本文将从原理、实验方法和应用三个方面&#xff0c;对同步辐射GISAXS和GIWAXS进行描述和比较。 一、原理 GISAXS和GIWAXS都是利用X射线与样品相互…...

OpManager 进行网络性能管理

计算机网络构成了任何组织的 IT 基础架构的支柱。由于企业严重依赖基于互联网的应用程序&#xff0c;由于网络相关问题&#xff0c;最终用户不受影响非常重要。因此&#xff0c;借助网络管理解决方案监控和提高网络性能对于保持企业始终正常运行至关重要。这将确保维护服务级别…...

面试被问到向上转型和向下转型时,怎么回答?

目录 前置小知识 1、向上转型 补充&#xff1a;向上转型的三种情况 2、向下转型 使用关键字&#xff1a;instanceof 3、转型带来了什么好处 前置小知识 java中的继承&#xff0c;我们简单回顾一下 通过java中的继承机制&#xff0c;可以实现一个类继承另一个类&#xff…...

加密月解密:概述,基础篇

加密月解密&#xff1a;概述&#xff0c;基础篇 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&…...

DC-DC升压模块隔离高压稳压电源直流变换器12v24v48v转600V1000V1100V1500V2000V3000V

特点● 效率高达 80%● 2*2英寸标准封装● 单双电压输出● 价格低● 大于600V高压,稳压输出● 工作温度: -40℃~85℃● 阻燃封装&#xff0c;满足UL94-V0 要求● 温度特性好● 可直接焊在PCB 上应用HRB W1~25W 系列模块电源是一种DC-DC升压变换器。该模块电源的输入电压分为&am…...

pandas数据分析(三)

书接pandas数据分析&#xff08;二&#xff09; 文章目录DataFrame数据处理与分析处理超市交易数据中的异常值处理超市交易数据中的缺失值处理超市交易数据中的重复值使用数据差分查看员工业绩波动情况使用透视表与交叉表查看业绩汇总数据使用重采样技术按时间段查看员工业绩Da…...

cpu performance profiling

精彩文章分享1. android performanceAndroid 性能分析工具介绍 (qq.com)手机Android存储性能优化架构分析 (qq.com)抖音 Android 性能优化系列&#xff1a;启动优化之理论和工具篇 (qq.com)那些年&#xff0c;我们一起经历过的 Android 系统性能优化 (qq.com)Android卡顿&#…...

vue2启动项目npm run dev报错 Error: Cannot find module ‘babel-preset-es2015‘ 修改以及问题原因

报错内容如下图&#xff1a; 说找不到模块 babel-preset-es2015。 在报错之前&#xff0c;我正在修改代码&#xff0c;使用 ElementUI 的按需引入方式&#xff0c;修改了 babel.config.js 。 注意&#xff1a;vue/cli 脚手架4版本已经使用了 babel7 &#xff0c;所以项目中…...

*9 set up 注意点

1、set up 执行的时机&#xff1a;beforeCreate 之前执行一次&#xff0c;this 是 undefined 2、set up 的参数&#xff1a; props&#xff1a;值为对象&#xff0c;组件外传递属性&#xff0c;内部声明并且接收属性 context&#xff1a;上下文对象&#xff0c;其内部包含三个…...

linux目录——文件管理

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。个人主页&#xff1a;小李会科技的…...

使用new bing简易教程

申请new bing 首先先申请new bing然后等待通过&#xff0c;如下图 申请完&#xff0c;用edge浏览器&#xff0c;若有科学方法&#xff0c;就能在右上角的聊天进行向AI提问 使用插件来进行直接访问New Bing 在edge浏览器中安装一个插件&#xff0c;地址为&#xff1a;Mod…...

idea插件分享 显著提高开发效率

idea插件 Prettier 作用&#xff1a;支持代码格式化&#xff08;java、js等&#xff09; 另外支持js内方法跳转和js中ajax请求跳转到java代码里面 下载&#xff1a;Prettier SQL Params Setter 作用&#xff1a;将日志中mapper输出preparing和paramters处理成完整可直接执行…...

文心一言发布我怎么看?

文心一言发布会 有想看发布会视频的朋友,关注爱书不爱输的程序猿,私信找我拿 我只简短的回答两个问题: 1.文心一言能否为百度止颓&#xff1f; 首先,百度的颓势是由于多种因素导致的&#xff0c;包括市场竞争压力、业务发展战略的失误、管理体制的问题等。要想止颓&#xff0c;…...

100. 增减序列

给定一个长度为 n 的数列 a1,a2,…,an&#xff0c;每次可以选择一个区间 [l,r]&#xff0c;使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样&#xff0c;并求出在保证最少次数的前提下&#xff0c;最终得到的数列可能有多少种。 输入…...

操作系统之进程的初步认识(1)

进程1. 进程的相关概念1.1 进程的定义1.2 进程的概念(1)1.3 进程的概念(2)2. 进程和程序的区别3. 进程管理:3.1 进程的结构体有哪些属性(1) Pid(操作系统里指进程识别号)(2) 内存指针(3) 文件描述符表4. 进程调度:(1) 并行(2) 并发5. 进程调度需要的属性(1) 进程状态(2) 进程优…...

【Java】你真的懂封装吗?一文读懂封装-----建议收藏

博主简介&#xff1a;努力学习的预备程序媛一枚~博主主页&#xff1a; 是瑶瑶子啦所属专栏: Java岛冒险记【从小白到大佬之路】 前言 write in the front: 如何理解封装&#xff1f; 试想&#xff1a;我们使用微波炉的时候&#xff0c;只用设置好时间&#xff0c;按下“开始”…...

使用MobaXterm ssh远程登录Ubuntu 20.04

使用MobaXterm 远程登录Ubuntu 20.04 首先需要到官网下载一个MobaXterm 准备一台Ubuntu20.04的虚拟机。使用ifconfig查看IP 我这里的虚拟机是新安装的&#xff0c;所以会提示命令不存在&#xff0c;只要按照提示输入&#xff1a; sudo apt install net-tools接着等待安装完成…...

蓝桥杯历年真题训练

2012年第四届全国电子专业人才设计与技能大赛“自动售水机”设计任务书1. 系统框图接下来我们将任务分块&#xff1a; 1. 按键控制单元 设定按键 S7 为出水控制按键&#xff0c;当 S7 按下后&#xff0c;售水机持续出水&#xff08;继电器接通&#xff0c;指示 灯 L10 点亮&…...

Spring事务报错: org.springframework.transaction.UnexpectedRollbackException

异常信息&#xff1a;支持当前事务&#xff0c;如果不存在则抛出异常。事务被回滚&#xff0c;因为它被标记为仅回滚 org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-onlyat org.springframe…...

Spring:IOC和AOP

Spring&#xff1a;IOC和AOP一. IOC(1) 引入(2) 定义(3) 作用(4) 实现(5) DI依赖注入二. AOP(1) 概念(2) Spring中的AOP(3) 入门案例0. 准备&#xff1a;1. 定义通知类和通知方法&#xff1b;2. 在通知类中描述和定义切入点 pointcut3. 用注释绑定切入点和通知方法4. 通知类&am…...

【笔记】效率之门——Python中的函数式编程技巧

文章目录Python函数式编程1. 数据2. 推导式3. 函数式编程3.1. Lambda函数3.2. python内置函数3.3. 高阶函数4. 函数式编程的应用Python函数式编程 我的AI Studio项目&#xff1a;【笔记】LearnDL第三课&#xff1a;Python高级编程——抽象与封装 - 飞桨AI Studio (baidu.com) p…...

Java【多线程基础2】 Thread类 及其常用方法

文章目录前言一、Thread类1, 构造方法2, 常用成员属性3, 常用成员方法3.1, start 启动线程3.2, interrupt 中断线程 (重点)3.2.1, 手动设置标记位3.2.2, 使用内置标记位3.3.3, interrupt 方法 的作用3.3 sleep 休眠线程3.4, jion 等待线程3.5 获取当前线程的引用总结前言 各位读…...

JVM调优实战及常量池详解

目录 阿里巴巴Arthas详解 Arthas使用场景 Arthas使用 GC日志详解 如何分析GC日志 CMS G1...

ChatGPT研究分析:GPT-4做了什么

前脚刚研究了一轮GPT3.5&#xff0c;OpenAI很快就升级了GPT-4&#xff0c;整体表现有进一步提升。追赶一下潮流&#xff0c;研究研究GPT-4干了啥。本文内容全部源于对OpenAI公开的技术报告的解读&#xff0c;通篇以PR效果为主&#xff0c;实际内容不多。主要强调的工作&#xf…...

我为什么要写博客,写博客的意义是什么??

曾经何时我也不知道&#xff0c;怎样才能变成我自己所羡慕的大佬&#xff01;&#xff01;在一次次的CSDN阅读的过程中&#xff0c;结实了许多志同道合的人&#xff01;&#xff01;包过凉哥&#xff0c;擦姐……大佬&#xff0c;但是&#xff0c;很遗憾&#xff0c;与这些人只…...

ssm框架之spring:浅聊AOP

AOP&#xff08;Aspect Oriented Programming&#xff09;&#xff0c;是一种设计思想。先看一下百度百科的解释&#xff1a; 在软件业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期间动态…...

k8s详解

一、k8s中的yaml文件 JSON格式&#xff1a;主要用于api接口之间信息的传递YAML格式&#xff1a;主要用于配置和管理&#xff0c;YAML是一种简洁的非标记性语言&#xff0c;内容格式人性化 YAML格式&#xff1a; 大小写敏感使用缩进代表层级关系&#xff0c;不支持TAB制表符缩…...

计算机操作系统(第四版)第一章操作系统引论 1.1操作系统的目标和作用

第一章操作系统引论 1.1操作系统的目标和作用 什么是操作系统OS&#xff1f; 配置在计算机硬件上的第一层软件是对硬件的首次扩充。 是最重要的系统软件&#xff0c;其他系统软件应用软件都依赖于操作系统的支持。 操作系统主要作用&#xff1f; 管理计算机系统所有硬件设…...

git push解决办法: ! [remote rejected] master -> master (pre-receive hook declined)

项目经理远程创建了一个空项目&#xff0c;无任何内容&#xff0c;给我赋予的developer账号权限&#xff0c;本地改为后提交代码试了很多次都上传不上去&#xff0c;报错如下&#xff1a; ! [remote rejected] master -> master (pre-receive hook declined)先说结果&#x…...

自己做的网站怎么爬数据/搜索引擎推广的常见形式有

说起独立博客的技术演变&#xff0c;从数据库到纯文本放git是一大进步&#xff0c;从HTML到markdown又是一大进步。 解析技术有没有进步呢&#xff1f;既然markdown是纯文本了&#xff0c;再用PHP/Python/Ruby去实时解析&#xff0c;多么多此一举啊&#xff08;比如github用的J…...

国外开源网站建设软件/外贸谷歌推广

为了能管控到钱财的每个环节&#xff0c;公司要求采购订单需要使用物料限价&#xff0c;当有报价低于先前的价格时&#xff0c;在采购订单保存时&#xff0c;更新最低限价 BADI:ME_PROCESS_PO_CUST process~item里做限价检查 post里更新限价 METHOD IF_EX_ME_PROCESS_PO_CUST~P…...

网站建设应考虑哪些方面的问题/长沙大型网站建设公司

现象&#xff1a; 现在大多数java开发者使用的IDE都是eclipse&#xff0c;而且一般在一个workspace中&#xff0c;会有很多个项目&#xff0c;有些是open的&#xff0c;有些是关闭的。有时候eclipse在使用过程中会莫名其妙的异常中断关闭&#xff0c;再打开eclipse&#xff0c;…...

怎么在百度上搜到自己的网站/网站搜什么关键词

gettext 是GNU 提供的一套 国际化与本地化处理的相关函数库。大多数语言都有对应的gettext实现。本文主要使用jed 来实现gettext 一系列方法对应的功能。pot/po文件pot文件 是po文件的模板文件&#xff0c;一般是通过 xgettext 程序生成出来的。po文件 是根据pot文件通过msgini…...

如何建设一个专业的网站/群排名优化软件

这题水就不用说了 只是要注意在控制高和宽的时候都要加2 代码 #include <stdio.h>voidprint ( intwidth,intheight ){for( inti 1; i <height 2; i ) {for( intj 1; j <width 2; j )if( ( i 1||i height 2) )if( j 1||j width 2) printf ( "");elseprint…...

做网站建设需要/信息流优化

这次的 JDK 10 只是一个小版本更新&#xff0c;不过还是引入了一些非常重要的改变&#xff0c;我就挑几个对一般开发者影响重大的特性说说吧。Java 10 引入了局部变量类型推断&#xff0c;现在我们可以使用 var 替换局部变量声明时的类型部分&#xff0c;从而避免耗费精力去写出…...