mac(m3)安装kettle
下载kettle123通过网盘分享的文件:pdi-ce-9.4.0.0-343.zip链接: https://pan.baidu.com/s/1SK95gLvA6pJHaWdI_anxpg?pwd=ihre 提取码: ihre --来自百度网盘超级会员v5的分享 修改启动脚本 在130行加入下面这段 下载jar包 下载完后将包名改为swt.jar,并新建arm64文件夹,把jar包放进去 1https://mvnrepository.com/artifact/org.eclipse.platform/org.eclipse.swt.cocoa.macosx.aarch64 启动12345# 删除缓存rm -rf ~/.swt# 启动sh spoon.sh
二分算法
二分算法技巧 代码模板 12345678910111213while(left <= right){ int mid = left + (right - left) / 2; if(arr[left] == target){ return mid; } if(arr[mid] < target){ left = mid + 1; } if(arr[mid] > target){ right = mid - 1; }}return left; 如果target值有多个 取最左边的值 123456789while(left <= right){ int mid = left + (right - left) / 2; if(arr[mid] < target){ left = mid + 1; }else{ right = mid - 1; }}return left; 取最右边的值 ...
前缀和数组
用于求出数组中索引区间元素和 题目一维数组前缀和Leetcode303:区域和检索-数组不可变 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= right 实现 NumArray 类: NumArray(int[] nums) 使用数组 nums 初始化对象 int sumRange(int i, int j) 返回数组 nums 中索引 left 和 right 之间的元素的 总和 ,包含 left 和 right 两点(也就是 nums[left] + nums[left + 1] + ... + nums[right] ) 示例 1: 1234567891011输入:["NumArray", "sumRange", "sumRange", "sumRange"][[[-2, 0, 3, -5, 2, -1]], [0, 2], [2, 5], [0, ...
【Spring Framework】自动装配
问题思考 自动装配是什么? 自动装配解决了什么问题? 没有自动装配的时候是怎么注入依赖的?假设用xml方式进行元数据配置,如下: 未使用自动装配 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647public class Person { private Superpower superpower; public Superpower getSuperpower() { return superpower; } public void setSuperpower(Superpower superpower) { this.superpower = superpower; }}public class Superpower { private String name; private String description; ...
【力扣88】合并两个有序数组
题目给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。 **注意:**最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。 示例 1: 1234输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]解释:需要合并 [1,2,3] 和 [2,5,6] 。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。 示例 2: 1234输入:nums1 = [1], m = 1, nums2 = [], n = 0输出:[1]解释:需要合并 [1] 和 [] 。合并结果是 [1] 。 示例 3: 12345输入:nums1 =...
【力扣75】颜色分类
题目给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这个问题。 示例 1: 12输入:nums = [2,0,2,1,1,0]输出:[0,0,1,1,2,2] 示例 2: 12输入:nums = [2,0,1]输出:[0,1,2] 提示: n == nums.length 1 <= n <= 300 nums[i] 为 0、1 或 2 实现代码123456789101112131415161718192021222324class Solution { public void sortColors(int[] nums) { int left = 0, right = nums.length - 1, p = 0; while (p <= right) { if (nu...
【力扣80】删除有序数组中的重复项II
题目给你一个有序数组 nums ,请你** 原地** 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以**「引用」**方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以想象内部操作如下: 12345678// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = removeDuplicates(nums);// 在函数里修改输入数组对于调用者是可见的。// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。for (int i = 0; i < len; i++) { print(nums[i]);} 示例 1: 123输入:nums = [1,1,1,2,2,3]输出:5, nums = [1,1,2,2,3]解释:函数应返回新长度 length = 5, 并且原数组的前...
【力扣54】螺旋矩阵
题目给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 12输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5] 示例 2: 12输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7] 提示: m == matrix.length n == matrix[i].length 1 <= m, n <= 10 -100 <= matrix[i][j] <= 100 实现代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758class Solution { public List<Integer> spiralOrder(int[][] ma...
【力扣234】回文链表
题目给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 12输入:head = [1,2,2,1]输出:true 示例 2: 12输入:head = [1,2]输出:false 提示: 链表中节点数目在范围[1, 105] 内 0 <= Node.val <= 9 实现代码方式一 递归 1234567891011121314151617181920ListNode p;public boolean isPalindrome(ListNode head) { p = head; recursion(head); return p.next == null;}private ListNode recursion(ListNode head){ if(head == null) { return null; } ListNode lastNode = recursion(head.n...
递归算法
如何理解递归算法 相信递归 小例子验证 比如leetcode206: 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 12输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 示例 2: 12输入:head = [1,2]输出:[2,1] 示例 3: 12输入:head = []输出:[] 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 代码如下 123456789101112131415161718192021222324252627/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int...









