leetcode--各种数据结构相关的题
数据结构
- 1.数组
- (1)找到所有数组中消失的数字(448)
- (2)旋转图像(48)
- (3)搜索二维矩阵 II(240)
- (4)最多能完成排序的块(769)
- 2.栈和队列
- (1)用栈实现队列(232)
- (2)最小栈(155)
- (3)有效的括号(20)
- 3.单调栈
- (1)每日温度
- 4.优先队列
- (1)合并K个升序链表(23)
- 5.双端队列
- (1)滑动窗口最大值(239)
- 6.哈希表
- (1)两数之和(1)
- (2)最长连续序列(128)
- (3)直线上最多的点数
- 7.前缀和与积分图
- (1)区域和检索 - 数组不可变(303)
- (2)二维区域和检索 - 矩阵不可变(304)
- (3)和为 K 的子数组(560)
- 8.练习
- (1)重塑矩阵(566)
- (2)用队列实现栈(225)
- (3)下一个更大元素 II(503)
- (4)存在重复元素(217)
- (5)数组的度
- (6)最长和谐子序列(594)
- (7)寻找重复数(287)
- (8)优势洗牌(870)
1.数组
(1)找到所有数组中消失的数字(448)
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。
输入:nums = [4,3,2,7,8,2,3,1]
输出:[5,6]输入:nums = [1,1]
输出:[2]
//时间空间复杂度都为O(n)
public class Solution {public static void main(String[] args) {int[] arr={4,3,2,7,8,2,3,1};Solution solution=new Solution();System.out.println(solution.findDisappearedNumbers(arr));}public List<Integer> findDisappearedNumbers(int[] nums) {int n= nums.length;boolean[] find=new boolean[n+1];//数组中出现的数将该数对应的数组位置置为trueList<Integer> list=new ArrayList<>();for (int i=0;i<n;i++){find[nums[i]]=true;}for (int i=1;i<=n;i++){if (!find[i]){list.add(i);}}return list;}
}//空间复杂度为O(1)
public class Solution {public static void main(String[] args) {int[] arr={4,3,2,7,8,2,3,1};Solution solution=new Solution();System.out.println(solution.findDisappearedNumbers(arr));}public List<Integer> findDisappearedNumbers(int[] nums) {int n= nums.length;List<Integer> list=new ArrayList<>();//遍历数组 每遇到一个数x 就让nums[x-1]增加n//当我们遍历到某个位置时 其中的数可能已经被增加过了 因此需要对n取模for (int i=0;i<n;i++){int x=(nums[i]-1)%n;nums[x]+=n;}//遍历nums 若nums[i]未大于n 就说明没有遇到过数i+1for (int i=0;i<n;i++){if (nums[i]<=n){list.add(i+1);}}return list;}
}
(2)旋转图像(48)
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。
你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。
对应位置交换位置,结束条件可以考虑i和j同时向内缩进,也就是一圈一圈考虑
public class Solution {public static void main(String[] args) {int[][] arr={{5,1,9,11},{2,4,8,10},{13,3,6,7},{15,14,12,16}};Solution solution=new Solution();solution.rotate(arr);for (int i=0;i<arr.length;i++){for (int j=0;j< arr[0].length;j++){System.out.print(arr[i][j]+" ");}System.out.println();}}public void rotate(int[][] matrix) {int rowMin=0;//从第0行开始 起始行int colMin=0;//从第0列开始 起始列int rowMax= matrix.length-1;//第一圈可以用到的的最大行数是总行数-1int colMax=matrix[0].length-1;//第一圈可以用到的的最大列数是总列数-1//旋转完一圈开始下一圈 循环退出条件是 起始行>最大行 起始列>最大列while (rowMin<=rowMax&&colMin<=colMax){RotateOneCircle(matrix,rowMin,colMin,rowMax,colMax);//缩进rowMin++;colMin++;rowMax--;colMax--;}}//旋转一圈的方法private void RotateOneCircle(int[][] arr, int rowMin, int colMin, int rowMax, int colMax) {int temp=0;//辅助数//遍历旋转这一圈for (int j=0;j<colMax-colMin;j++){temp=arr[rowMin][colMin+j];arr[rowMin][colMin+j]=arr[rowMax-j][colMin];arr[rowMax-j][colMin]=arr[rowMax][colMax-j];arr[rowMax][colMax-j]=arr[rowMin+j][colMax];arr[rowMin+j][colMax]=temp;}}
}
(3)搜索二维矩阵 II(240)
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true
从数组的右上角开始遍历,如果target大于当前元素,则用当前元素下方的元素再次比较;如果target小于当前元素,
则用当前元素左边的元素再次比较;以此类推,知道找到target或者到达边界
public class Solution {public static void main(String[] args) {int[][] arr={{1,4,7,11,15},{2,5,8,12,19},{3,6,9,16,22},{10,13,14,17,24},{18,21,23,26,30}};int target=5;Solution solution=new Solution();System.out.println(solution.searchMatrix(arr,5));}public boolean searchMatrix(int[][] matrix, int target) {int m= matrix.length;int n=matrix[0].length-1;//表示列int i=0;//表示行while (i<m&&n>=0){if (target>matrix[i][n]){//target大于当前元素 比较下方元素i++;} else if (target<matrix[i][n]) {//target小于当前元素 比较左方元素n--;}else {//找到targetreturn true;}}return false;}
}
(4)最多能完成排序的块(769)
给定一个长度为 n 的整数数组 arr ,它表示在 [0, n - 1] 范围内的整数的排列。
我们将 arr 分割成若干 块 (即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后的原数组相同。
返回数组能分成的最多块数量。
输入: arr = [4,3,2,1,0]
输出: 1
解释:
将数组分成2块或者更多块,都无法得到所需的结果。
例如,分成 [4, 3], [2, 1, 0] 的结果是 [3, 4, 0, 1, 2],这不是有序的数组。输入: arr = [1,0,2,3,4]
输出: 4
解释:
我们可以把它分成两块,例如 [1, 0], [2, 3, 4]。
然而,分成 [1, 0], [2], [3], [4] 可以得到最多的块数。
对每个块单独排序后,结果为 [0, 1], [2], [3], [4]
public class Solution {public static void main(String[] args) {int[] arr={1,0,2,3,4};Solution solution=new Solution();System.out.println(solution.maxChunksToSorted(arr));}public int maxChunksToSorted(int[] arr) {int n=arr.length;if (arr.length==1){return 1;}int maxCount=0;//可以分成的最大块数int preMax=0;//当前最大值for (int i=0;i<n;i++){preMax=Math.max(preMax,arr[i]);//如果当前最大值等于当前的i值if (preMax==i){maxCount++;//可以分块数+1}}return maxCount;}
}
2.栈和队列
(1)用栈实现队列(232)
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
实现 MyQueue 类:
void push(int x) 将元素 x 推到队列的末尾
int pop() 从队列的开头移除并返回元素
int peek() 返回队列开头的元素
boolean empty() 如果队列为空,返回 true ;否则,返回 false
说明:
你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。
你所使用的语言也许不支持栈。你可以使用 list 或者 deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。
public class MyQueue {Stack<Integer> stack1;Stack<Integer> stack2;public MyQueue() {stack1=new Stack<>();stack2=new Stack<>();}public void push(int x) {while (!stack2.isEmpty()){stack1.push(stack2.pop());}stack1.push(x);}public int pop() {if (stack2.isEmpty()){while (!stack1.isEmpty()){stack2.push(stack1.pop());}}return stack2.pop();}public int peek() {if (stack2.isEmpty()){while (!stack1.isEmpty()){stack2.push(stack1.pop());}}return stack2.peek();}public boolean empty() {if (stack1.empty()&& stack2.empty()){return true;}return false;}
}public class QueueTest {public static void main(String[] args) {MyQueue queue=new MyQueue();queue.push(1);queue.push(2);queue.push(3);//System.out.println("pop():"+queue.pop());System.out.println("peak():"+queue.peek());System.out.println("empty():"+queue.empty());queue.push(4);System.out.println("====================");System.out.println("pop():"+queue.pop());System.out.println("peak():"+queue.peek());System.out.println("empty():"+queue.empty());}}
(2)最小栈(155)
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
实现 MinStack 类:
MinStack() 初始化堆栈对象。
void push(int val) 将元素val推入堆栈。
void pop() 删除堆栈顶部的元素。
int top() 获取堆栈顶部的元素。
int getMin() 获取堆栈中的最小元素。
public class MinStack {Stack<Integer> stack;//普通栈Stack<Integer> minStack;//返回最小值的栈public MinStack() {stack=new Stack<>();minStack=new Stack<>();minStack.push(Integer.MAX_VALUE);}public void push(int val) {stack.push(val);//最小值栈保存当前元素加进来后 栈中的最小值minStack.push(Math.min(minStack.peek(),val));}public void pop() {stack.pop();//当前元素出栈时 最小值栈对应的位置也要出栈minStack.pop();}public int top() {return stack.peek();}public int getMin() {return minStack.peek();}}public class MinStackTest {public static void main(String[] args) {MinStack stack=new MinStack();stack.push(-3);stack.push(1);stack.push(23);System.out.println(stack.getMin());}}
(3)有效的括号(20)
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
输入:s = "()"
输出:true输入:s = "()[]{}"
输出:true输入:s = "(]"
输出:false
public class Solution {public static void main(String[] args) {String s="()[]{}";Solution solution=new Solution();System.out.println(solution.isValid(s));}public boolean isValid(String s) {int n=s.length();//长度为奇数直接返回falseif (n%2!=0){return false;}Stack<Character> stack=new Stack<>();Map<Character,Character> map=new HashMap<>();//将右括号和左括号分别以 key 和 value 存储map.put(')','(');map.put('}','{');map.put(']','[');//遍历字符串匹配括号for (int i=0;i<n;i++){char ch=s.charAt(i);if (map.containsKey(ch)){//如果ch是map集合里的key 也就是右括号//先判断stack是否为空或者栈顶元素是否与ch匹配if (stack.isEmpty()||stack.peek()!=map.get(ch)){return false;}//如果匹配stack.pop();//弹出栈顶括号}else {//如果ch是左括号stack.push(ch);}}return stack.isEmpty();}
}
3.单调栈
(1)每日温度
给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。
输入: temperatures = [73,74,75,71,69,72,76,73]
输出: [1,1,4,2,1,1,0,0]输入: temperatures = [30,40,50,60]
输出: [1,1,1,0]输入: temperatures = [30,60,90]
输出: [1,1,0]
public class Solution {public static void main(String[] args) {int[] arr={73,74,75,71,69,72,76,73};Solution solution=new Solution();int[] tem = solution.dailyTemperatures(arr);for (int i=0;i< tem.length;i++){System.out.print(tem[i]+" ");}}public int[] dailyTemperatures(int[] temperatures) {int n = temperatures.length;if (n==1){return new int[1];}int[] arr=new int[n];Stack<Integer> stack=new Stack<>();for (int i=0;i<n;i++){//当栈不为空并且栈顶温度小于当前温度时while (!stack.isEmpty()&&temperatures[i]>temperatures[stack.peek()]){arr[stack.peek()]=i-stack.pop();}//当上边两个条件不全满足时 将当前元素的下标入栈stack.push(i);}return arr;}
}
4.优先队列
(1)合并K个升序链表(23)
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
输入:lists = [[1,4,5],[1,3,4],[2,6]]
输出:[1,1,2,3,4,4,5,6]
解释:链表数组如下:
[1->4->5,1->3->4,2->6
]
将它们合并到一个有序链表中得到。
1->1->2->3->4->4->5->6输入:lists = []
输出:[]输入:lists = [[]]
输出:[]
//顺序遍历合并每一个链表
public class Solution {public ListNode mergeKLists(ListNode[] lists) {ListNode list=null;//需要返回的链表//遍历每一个链表 然后与list合并for (int i=0;i< lists.length;i++){list=mergeTwoLists(lists[i],list);}return list;}private ListNode mergeTwoLists(ListNode a,ListNode b){if (a==null||b==null){return a!=null?a:b;}ListNode head=new ListNode(0);//设置一个头节点 返回的时候返回他的next节点ListNode tail=head;//记录下一个插入位置的前一个位置ListNode preA=a;//a链表的当前节点ListNode preB=b;//b链表的当前节点while (preA!=null&&preB!=null){if (preA.val<preB.val){tail.next=preA;preA=preA.next;}else {tail.next=preB;preB=preB.next;}tail=tail.next;}tail.next=preA!=null?preA:preB;return head.next;}
}//采用分治合并
public class Solution {public ListNode mergeKLists(ListNode[] lists) {return merge(lists,0,lists.length-1);}private ListNode merge(ListNode[] lists,int left,int right){if (left==right){return lists[left];}if (left>right){return null;}int mid=(left+right)>>1;//因为lists.length<500 所以这里不用担心越界 可以使用left+rightreturn mergeTwoLists(merge(lists, left, mid),merge(lists, mid+1, right));}private ListNode mergeTwoLists(ListNode a,ListNode b){if (a==null||b==null){return a!=null?a:b;}ListNode head=new ListNode(0);//设置一个头节点 返回的时候返回他的next节点ListNode tail=head;//记录下一个插入位置的前一个位置ListNode preA=a;//a链表的当前节点ListNode preB=b;//b链表的当前节点while (preA!=null&&preB!=null){if (preA.val<preB.val){tail.next=preA;preA=preA.next;}else {tail.next=preB;preB=preB.next;}tail=tail.next;}tail.next=preA!=null?preA:preB;return head.next;}
}
5.双端队列
(1)滑动窗口最大值(239)
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
返回 滑动窗口中的最大值 。
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
解释:
滑动窗口的位置 最大值
--------------- -----
[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 31 3 [-1 -3 5] 3 6 7 51 3 -1 [-3 5 3] 6 7 51 3 -1 -3 [5 3 6] 7 61 3 -1 -3 5 [3 6 7] 7输入:nums = [1], k = 1
输出:[1]
//优先队列
public class Solution {public static void main(String[] args) {int[] arr={1,3,-1,-3,5,3,6,7};int k=3;Solution solution=new Solution();int[] ints = solution.maxSlidingWindow(arr, k);for (int i:ints) {System.out.print(i+" ");}}public int[] maxSlidingWindow(int[] nums, int k) {int n= nums.length;int[] res=new int[n-k+1];//定义一个大根堆PriorityQueue<int[]> heap=new PriorityQueue<>(new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {if (o1[0]!=o2[0]){//如果元素值不相等 按照元素值降序排序return o2[0]-o1[0];}//如果元素值相等 按照索引值降序排序return o2[1]-o1[1];}});//将数组前k个元素加入大根堆for (int i=0;i<k;i++){heap.add(new int[]{nums[i],i});}res[0]=heap.peek()[0];//开始滑动窗口for (int i=k;i<n;i++){heap.add(new int[]{nums[i],i});//当前元素加入大根堆//如果此时最大值不在窗口内 就将堆顶元素移除 直到堆顶元素最大值在当前窗口内//此时堆顶元素就是当前窗口内的最大值while (heap.peek()[1]<=i-k){heap.poll();//弹出堆顶元素}res[i-k+1]=heap.peek()[0];}return res;}
}
6.哈希表
哈希表又称为散列表,使用O(n)的空间复杂度存储数据,通过hash函数映射位置,从而实现近似O(1)的时间
复杂度的插入、删除、查找等操作
(1)两数之和(1)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
//暴力遍历
class Solution {public static void main(String[] args) {int[] arr={2,7,11,15};int k=9;Solution solution=new Solution();int[] ints = solution.twoSum(arr, k);for (int i:ints) {System.out.print(i+" ");}}public int[] twoSum(int[] nums, int target) {int n= nums.length;for (int i=0;i<n-1;i++){for (int j=i+1;j<n;j++){if (nums[j]==target-nums[i]){return new int[]{i,j};}}}return new int[0];}
}//使用hash表
public class Solution {public static void main(String[] args) {int[] arr={2,7,11,15};int k=9;Solution solution=new Solution();int[] ints = solution.twoSum(arr, k);for (int i:ints) {System.out.print(i+" ");}}public int[] twoSum(int[] nums, int target) {int n= nums.length;Map<Integer,Integer> map=new HashMap<>();for (int i=0;i<n;i++){//如果map里存在一个key使它和当前值相加等于target 直接返回他们的下标if (map.containsKey(target-nums[i])){return new int[]{map.get(target-nums[i]),i};}map.put(nums[i],i);}return new int[0];}
}
(2)最长连续序列(128)
给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。
请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9
public class Solution {public static void main(String[] args) {int[] arr={100,4,200,1,3,2};Solution solution=new Solution();System.out.println(solution.longestConsecutive(arr));}public int longestConsecutive(int[] nums) {int n= nums.length;if (n==0){return 0;} else if (n==1) {return 1;}Set<Integer> set=new HashSet<>();int longestLen=0;//最长序列长度//将数组中元素加入set集合中 并去重for (int i=0;i<n;i++){set.add(nums[i]);}//遍历数组中每一个元素for (int i=0;i<n;i++){//当一个元素在数组中不存在前驱元素时 从这个元素出发才可以得到当前最长序列//如果存在前驱元素 那么从前驱元素开始 得到的序列长度一定大于从当前这个元素开始的序列长度if (!set.contains(nums[i]-1)){int curLen=1;//当前长度int curNum=nums[i];//当前元素//当当前元素存在后继元素时 当前长度+1while (set.contains(curNum+1)){curLen++;curNum++;}longestLen=Math.max(longestLen,curLen);}}return longestLen;}
}
(3)直线上最多的点数
给你一个数组 points ,其中 points[i] = [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。
输入:points = [[1,1],[2,2],[3,3]]
输出:3
public class Solution {public static void main(String[] args) {int[][] arr={{1,1},{3,2},{5,3},{4,1},{2,3},{1,4}};Solution solution=new Solution();System.out.println(solution.maxPoints(arr));}public int maxPoints(int[][] points) {int n=points.length;if (n<=2){return n;}int maxPoint=0;//最多有多少个点在同一条直线上for (int i=0;i<n;i++){//当共线点的数量 > n/2时 或者 共线点的数量 >= 当前点i之后所剩的点的数量时 就直接退出循环if (maxPoint>=n-i||maxPoint>n/2){break;}//用map集合来存储每个不同直线上共线点的个数Map<Integer,Integer> map=new HashMap<>();for (int j=i+1;j<n;j++){int x=points[j][0]-points[i][0];int y=points[j][1]-points[i][1];//当x=0或者y=0时 将不为0的一方设置为1if (x==0){y=1;} else if (y==0) {x=1;}else {//假设y始终为正数if (y<0){x=-x;y=-y;}//求x和y的最大公倍数int gcdXY=gcd(Math.abs(x),Math.abs(y));//化简x和yx/=gcdXY;y/=gcdXY;}//将x和y用一个正数表示 作为集合的keyint key=y+20001*x;if (map.containsKey(key)){//当集合中存在key时 点数+1map.put(key,map.get(key)+1);}else {//集合中不存在key时 将这个key加入集合map.put(key,1);}}int preMax=0;//当前i所在的最大点数//遍历当前的map集合 求出当前的最大值for (Map.Entry<Integer,Integer> entry: map.entrySet()){preMax=Math.max(preMax, entry.getValue()+1);}//将每一次的当前最大值与最大值做比较 求总的最大值maxPoint=Math.max(preMax,maxPoint);}return maxPoint;}private int gcd(int x,int y){return y!=0?gcd(y,x%y):x;}
}
7.前缀和与积分图
(1)区域和检索 - 数组不可变(303)
给定一个整数数组 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] )
//暴力
public class NumArray {int[] arr;public NumArray(int[] nums) {this.arr=nums;}public int sumRange(int left, int right) {int sum=0;for (int i=left;i<=right;i++){sum+=arr[i];}return sum;}}//前缀和
public class NumArray {int[] arr;//前缀和数组public NumArray(int[] nums) {int n=nums.length;arr=new int[n+1];//前缀和数组的arr[0]=0 这样可以避免i=0的特殊判断for (int i=0;i<n;i++){arr[i+1]=arr[i]+nums[i];}}public int sumRange(int left, int right) {//left~right这个区间元素的和是 0~right的前缀和减去0~left-1的前缀和的值return arr[right+1]-arr[left];}}
(2)二维区域和检索 - 矩阵不可变(304)
给定一个二维矩阵 matrix,以下类型的多个请求:
计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。
实现 NumMatrix 类:
NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化
int sumRegion(int row1, int col1, int row2, int col2) 返回 左上角 (row1, col1) 、右下角 (row2, col2) 所描述的子矩阵的元素 总和 。
//使用一维前缀和
public class NumMatrix {int arr[][];public NumMatrix(int[][] matrix) {int m= matrix.length;//行int n=matrix[0].length;//列arr=new int[m][n+1];for (int i=0;i<m;i++){//计算出每一行的前缀和for (int j=0;j<n;j++){arr[i][j+1]=arr[i][j]+matrix[i][j];}}}public int sumRegion(int row1, int col1, int row2, int col2) {int sum=0;for (int i=row1;i<=row2;i++){sum+=arr[i][col2+1]-arr[i][col1];}return sum;}}//使用二维前缀和
public class NumMatrix {int arr[][];public NumMatrix(int[][] matrix) {int m= matrix.length;//行int n=matrix[0].length;//列arr=new int[m+1][n+1];//计算出第一行的所有列的前缀和for (int i=0;i<m;i++){for (int j=0;j<n;j++){arr[i+1][j+1]=arr[i][j+1]+arr[i+1][j]-arr[i][j]+matrix[i][j];}}}public int sumRegion(int row1, int col1, int row2, int col2) {return arr[row2+1][col2+1]-arr[row1][col2+1]-arr[row2+1][col1]+arr[row1][col1];}}
(3)和为 K 的子数组(560)
给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。
输入:nums = [1,1,1], k = 2
输出:2输入:nums = [1,2,3], k = 3
输出:2
//暴力枚举
public class Solution {public static void main(String[] args) {int[] arr={1,2,3};int k=3;Solution solution=new Solution();System.out.println(solution.subarraySum(arr,k));}public int subarraySum(int[] nums, int k) {int n= nums.length;int count=0;//连续子数组的个数//依次遍历每个元素 分别以每个元素结尾向前寻找 看能否找到连续子数组的和为kfor (int i=0;i<n;i++){int sum=0;//连续子数组的和for (int j=i;j>=0;j--){sum+=nums[j];if (sum==k){count++;}}}return count;}
}//前缀和+哈希表优化
public class Solution {public static void main(String[] args) {int[] arr={1,2,3};int k=3;Solution solution=new Solution();System.out.println(solution.subarraySum(arr,k));}public int subarraySum(int[] nums, int k) {int n= nums.length;int count=0;//连续子数组的个数int pre=0;//前缀和Map<Integer,Integer> map=new HashMap<>();map.put(pre,1);for (int i=0;i<n;i++){pre+=nums[i];if (map.containsKey(pre-k)){count+=map.get(pre-k);}map.put(pre,map.getOrDefault(pre,0)+1);}return count;}
}
8.练习
(1)重塑矩阵(566)
在 MATLAB 中,有一个非常有用的函数 reshape ,它可以将一个 m x n 矩阵重塑为另一个大小不同(r x c)的新矩阵,但保留其原始数据。
给你一个由二维数组 mat 表示的 m x n 矩阵,以及两个正整数 r 和 c ,分别表示想要的重构的矩阵的行数和列数。
重构后的矩阵需要将原始矩阵的所有元素以相同的 行遍历顺序 填充。
如果具有给定参数的 reshape 操作是可行且合理的,则输出新的重塑矩阵;否则,输出原始矩阵。
输入:mat = [[1,2],[3,4]], r = 1, c = 4
输出:[[1,2,3,4]]
输入:mat = [[1,2],[3,4]], r = 2, c = 4
输出:[[1,2],[3,4]]
public class Solution {public static void main(String[] args) {int[][] arr={{1,2},{3,4}};int r=1;int c=4;Solution solution=new Solution();int[][] ints = solution.matrixReshape(arr, r, c);System.out.println("行:"+ints.length+" "+"列:"+ints[0].length);}public int[][] matrixReshape(int[][] mat, int r, int c) {int m= mat.length;int n=mat[0].length;if (r*c!=m*n){return mat;}int[][] arr=new int[r][c];Queue<Integer> queue=new LinkedList<>();//将数组元素入队列for (int i=0;i<m;i++){for (int j=0;j<n;j++){queue.add(mat[i][j]);}}//将队列的元素插入新的数组for (int i=0;i<r;i++){for (int j=0;j<c;j++){arr[i][j]=queue.poll();}}return arr;}
}
(2)用队列实现栈(225)
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。
实现 MyStack 类:
void push(int x) 将元素 x 压入栈顶。
int pop() 移除并返回栈顶元素。
int top() 返回栈顶元素。
boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
注意:
你只能使用队列的基本操作 —— 也就是 push to back、peek/pop from front、size 和 is empty 这些操作。
你所使用的语言也许不支持队列。 你可以使用 list (列表)或者 deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。
public class MyStack {Queue<Integer> queue;Queue<Integer> auxQueue;//辅助栈public MyStack() {queue=new LinkedList<>();auxQueue=new LinkedList<>();}public void push(int x) {//首先将queue里剩余的元素弹入auxQueue中 为了保证元素顺序while (!queue.isEmpty()){auxQueue.add(queue.poll());}//将auxQueue中元素按照顺序弹入queue中while (!auxQueue.isEmpty()){queue.add(auxQueue.poll());}queue.add(x);}public int pop() {//首先将queue里剩余的元素弹入auxQueue中 为了保证元素顺序while (!queue.isEmpty()){auxQueue.add(queue.poll());}//在每一次操作前 先将auxQueue中的元素弹入queue中while (!auxQueue.isEmpty()){queue.add(auxQueue.poll());}while (queue.size()>1){auxQueue.add(queue.poll());}return queue.poll();}public int top() {//首先将queue里剩余的元素弹入auxQueue中 为了保证元素顺序while (!queue.isEmpty()){auxQueue.add(queue.poll());}//在每一次操作前 先将auxQueue中的元素弹入queue中while (!auxQueue.isEmpty()){queue.add(auxQueue.poll());}while (queue.size()>1){auxQueue.add(queue.poll());}return queue.peek();}public boolean empty() {while (queue.isEmpty()&&auxQueue.isEmpty()){return true;}return false;}
}
(3)下一个更大元素 II(503)
给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。
数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1 。
输入: nums = [1,2,1]
输出: [2,-1,2]
解释: 第一个 1 的下一个更大的数是 2;
数字 2 找不到下一个更大的数;
第二个 1 的下一个最大的数需要循环搜索,结果也是 2。输入: nums = [1,2,3,4,3]
输出: [2,3,4,-1,4]
//小根堆+循环数组
public class Solution {public static void main(String[] args) {int[] arr={1,2,1};Solution solution=new Solution();int[] ints = solution.nextGreaterElements(arr);for (int i:ints){System.out.print(i+" ");}}public int[] nextGreaterElements(int[] nums) {int n= nums.length;if (n==1){return new int[]{-1};}int[] arr=new int[n];//先将数组中所有位置初始化为-1Arrays.fill(arr,-1);PriorityQueue<int[]> heap=new PriorityQueue<>(new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {if (o1[0]==o2[0]){return o1[1]-o2[1];}return o1[0]-o2[0];}});for (int i=0;i<n*2-1;i++){//当小根堆不为空并且堆顶元素小于当前元素时 堆顶元素对应位置放当前元素while (!heap.isEmpty()&&heap.peek()[0]<nums[i%n]){arr[heap.poll()[1]]=nums[i%n];}//当前元素入堆heap.add(new int[]{nums[i%n],i%n});}return arr;}
}//单调栈+循环数组
public class Solution {public static void main(String[] args) {int[] arr={1,2,1};Solution solution=new Solution();int[] ints = solution.nextGreaterElements(arr);for (int i:ints){System.out.print(i+" ");}}public int[] nextGreaterElements(int[] nums) {int n= nums.length;if (n==1){return new int[]{-1};}int[] arr=new int[n];//先将数组中所有位置初始化为-1Arrays.fill(arr,-1);//单调栈中保存数组元素下标Deque<Integer> stack=new LinkedList<>();for (int i=0;i<n*2-1;i++){//当栈不为空并且当前元素大于栈顶下标所对应的元素时 将栈顶元素对应位置赋值为当前元素while (!stack.isEmpty()&&nums[stack.peek()]<nums[i%n]){arr[stack.poll()]=nums[i%n];}//当前元素下标入栈stack.push(i%n);}return arr;}
}
(4)存在重复元素(217)
给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
输入:nums = [1,2,3,1]
输出:true输入:nums = [1,2,3,4]
输出:false输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true
//排序
public class Solution {public static void main(String[] args) {int[] arr={1,2,1};Solution solution=new Solution();System.out.println(solution.containsDuplicate(arr));}public boolean containsDuplicate(int[] nums) {int n=nums.length;if (n==1){return false;}Arrays.sort(nums);for (int i=0;i<n-1;i++){if (nums[i]==nums[i+1]){return true;}}return false;}
}//集合
public class Solution {public static void main(String[] args) {int[] arr={1,2,1};Solution solution=new Solution();System.out.println(solution.containsDuplicate(arr));}public boolean containsDuplicate(int[] nums) {int n=nums.length;if (n==1){return false;}Set<Integer> set=new HashSet<>();for (int i=0;i<n;i++){//当集合中存在某个值时 证明这个值算上当前值至少出现了两次 直接返回trueif (set.contains(nums[i])){return true;}set.add(nums[i]);}return false;}
}
(5)数组的度
给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。
你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。
输入:nums = [1,2,2,3,1]
输出:2
解释:
输入数组的度是 2 ,因为元素 1 和 2 的出现频数最大,均为 2 。
连续子数组里面拥有相同度的有如下所示:
[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]
最短连续子数组 [2, 2] 的长度为 2 ,所以返回 2 。输入:nums = [1,2,2,3,1,4,2]
输出:6
解释:
数组的度是 3 ,因为元素 2 重复出现 3 次。
所以 [2,2,3,1,4,2] 是最短子数组,因此返回 6 。
//哈希表
public class Solution {public static void main(String[] args) {int[] arr={1,2,2,3,1};Solution solution=new Solution();System.out.println(solution.findShortestSubArray(arr));}public int findShortestSubArray(int[] nums) {int n= nums.length;if (n==1){return 1;}int maxCount=0;//出现最大的频数int minLen=0;//出现频数最多且子数组长度最短的长度//哈希表 用来存储元素 和 其出现的次数以及第一次出现和最后一次出现的位置Map<Integer,int[]> map=new HashMap<>();for (int i=0;i<n;i++){if (map.containsKey(nums[i])){//更新出现的次数已经最后一次出现的位置map.get(nums[i])[0]++;map.get(nums[i])[2]=i;}else {map.put(nums[i],new int[]{1,i,i});}}//依次获取每一个value 比较它们的次数以及对应的子数组的长度 得到答案for (Map.Entry<Integer,int[]> entry:map.entrySet()){int[] arr= entry.getValue();if (maxCount<arr[0]){maxCount=arr[0];//令maxCount=当前频数minLen=arr[2]-arr[1]+1;//更改当前最短子数组长度} else if (maxCount==arr[0]) {minLen=Math.min(minLen,arr[2]-arr[1]+1);}}return minLen;}
}
(6)最长和谐子序列(594)
和谐数组是指一个数组里元素的最大值和最小值之间的差别 正好是 1 。
现在,给你一个整数数组 nums ,请你在所有可能的子序列中找到最长的和谐子序列的长度。
数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。
输入:nums = [1,3,2,2,5,2,3,7]
输出:5
解释:最长的和谐子序列是 [3,2,2,2,3]输入:nums = [1,2,3,4]
输出:2输入:nums = [1,1,1,1]
输出:0
//排序
public class Solution {public static void main(String[] args) {int[] arr={1,2,3,4};Solution solution=new Solution();System.out.println(solution.findLHS(arr));}public int findLHS(int[] nums) {int n= nums.length;if (n<2){return 0;}int maxLen=0;//最长和谐子序列的长度Arrays.sort(nums);for (int i=0;i<n-1;i++){int j=i;int preMin=nums[i];//当前和谐子序列最小值//当当前子序列满足和谐子序列时while (j<(n-1)&&(preMin+1)>=nums[j+1]){j++;}//当当前最小值不等于最大值时 才成立if (preMin!=nums[j]){maxLen=Math.max(maxLen,j-i+1);}}return maxLen;}}//哈希表
public class Solution {public static void main(String[] args) {int[] arr={1,2,3,4};Solution solution=new Solution();System.out.println(solution.findLHS(arr));}public int findLHS(int[] nums) {int n= nums.length;if (n<2){return 0;}int maxLen=0;//最长和谐子序列的长度Map<Integer,Integer> map=new HashMap<>();//遍历数组 得到每个元素出现的次数for (int i=0;i<n;i++){if (map.containsKey(nums[i])){map.put(nums[i],map.get(nums[i])+1);}else {map.put(nums[i],1);}}//遍历map 对每一个key值 如果找到key+1也在map里 那么它们对应的和谐子序列长度就是它们的value值相加for (int key:map.keySet()){if (map.containsKey(key+1)){maxLen=Math.max(maxLen,map.get(key)+map.get(key+1));}}return maxLen;}}
(7)寻找重复数(287)
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。
假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。
你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。
输入:nums = [1,3,4,2,2]
输出:2输入:nums = [3,1,3,4,2]
输出:3
public class Solution {public static void main(String[] args) {int[] arr={3,1,3,4,2};Solution solution=new Solution();System.out.println(solution.findDuplicate(arr));}public int findDuplicate(int[] nums) {int n= nums.length;int repeatNum=0;//重复的整数int left=1;int right=n-1;while (left<=right){int mid=(left+right)>>1;int count=0;//计数 来判断重复的数出现在哪for (int i=0;i<n;i++){if (nums[i]<=mid){count++;}}if (count<=mid){left=mid+1;}else {right=mid-1;repeatNum=mid;}}return repeatNum;}}
(8)优势洗牌(870)
给定两个大小相等的数组 nums1 和 nums2,nums1 相对于 nums2 的优势可以用满足 nums1[i] > nums2[i] 的索引 i 的数目来描述。
返回 nums1 的任意排列,使其相对于 nums2 的优势最大化。
输入:nums1 = [2,7,11,15], nums2 = [1,10,4,11]
输出:[2,11,7,15]输入:nums1 = [12,24,8,32], nums2 = [13,25,32,11]
输出:[24,32,8,12]
public int[] advantageCount(int[] nums1, int[] nums2) {int n= nums1.length;int[] arr=new int[n];Integer[] a=new Integer[n];Integer[] b=new Integer[n];int left=0;//数组当前左边界int right=n-1;//数组当前有边界for (int i=0;i<n;i++){a[i]=i;b[i]=i;}//a b 分别来存储 nums1 nums2 排序后的下标值Arrays.sort(a,(i,j)->nums1[i]-nums1[j]);Arrays.sort(b,(i,j)->nums2[i]-nums2[j]);for (int i=0;i<n;i++){//当nums1的当前最小值大于nums2的当前最小值时if (nums1[a[i]]>nums2[b[left]]){arr[b[left]]=nums1[a[i]];left++;}else {arr[b[right]]=nums1[a[i]];right--;}}return arr;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4497691.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
普适型GNSS接收机_一体化GNSS测量仪
普适型GNSS接收机_一体化GNSS测量仪 普适性一体化GNSS接收机高精度定位终端,支持GPS L1/L2,BD B1/B2,支持北斗三代。内嵌工业级智能平台,平均功耗小于2 W,具备原始数据存储和发送功能,支持离线补发。&#…...

java素数实例
1.判断一个数 是否是 素数。 package zzh1; import java.util.Scanner;public class java1 {public static void main(String args[]) {System.out.println("请输入一个数 ");Scanner sc new Scanner(System.in);int a sc.nextInt();int ma/2;int i,flag0;for(i2;…...

MyBatis框架(SpringBoot简化Mybatis)--2
目录 1.SpringBoot简化Mybatis 1.1 项目整合 1.1.1 创建项目 1.1.2 导入jar包 1.1.3 删除多余的文件 1.1.4 关于主启动类异常的说明 1.1.5 修改YML配置文件和pojo类 1.1.6 将Mapper接口交给容器管理 1.1.7 编辑测试类 2. Mybatis 基本用法 2.1 根据ID查询数据 2.1.1 编…...

css中什么是伪元素,CSS伪元素是什么?
什么?伪元素?之前不是说了伪类吗,怎么又跑出来一个伪元素吗?它们不是一样的吗?呵呵,其实伪类和伪元素是两个不同的概念,今天小编就为大家介绍一下伪元素。一、什么是伪元素css伪元素代表了某个元素的子元素,这个子元素虽然在逻…...

CANoe入门:介绍、安装及打开
1. 介绍 CANoe是德国Vector公司的一款用于开发、测试和分析单个ECU和整个ECU网络的综合性工具,包括软件和硬件。它在整个开发过程中为网络设计者、开发和测试工程师提供支持:从规划到系统级测试。由于其多种变体和功能能够对不同的项目提供支持,被全球OEM和供应商广泛使用 …...

python读取bmp图片_用Python读取bmp文件
我意识到这是一个老问题,但我自己解决这个问题时发现了这个问题,我想这可能会在将来帮助别人。实际上很容易将BMP文件读取为二进制数据。当然,这取决于你需要支持的范围有多广,需要支持的角落案例有多少。下面是一个简单的解析器&…...

公众号网课答案搭建教程
公众号网课答案搭建教程 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 题库:题库后台(点击跳转…...

linux 服务器ip修改
一、打开网卡配置文件 进入目录 cd /etc/sysconfig/network-scripts/ 查看ifcfg-开头的文件,列如ifcfg-ens33 vi ifcfg-ens33 查看的信息如图: 1 二、修改相关配置 2.1 BOOTPROTO BOOTPROTOstatic #dhcp:自动分配ip ,static:…...

数据仓库实践杂谈(九)——增量/全量
[目录] 第一章:概述第二章:整体数据分层第三章:整体实现框架第四章:元数据第五章:ETL第六章:数据校验第七章:数据标准化第八章:去重第九章:增量/全量第十章:…...

Java素数算法
一、概念介绍 大家中学都学过,就不过多介绍了,大致提两点: 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 0和1既不是质数也不是合数,最…...
js 与 jsp 数据互传
jsp -> js 1.input 和 span通过定义id 传值: <input type"text" name"useMoney" id"useMoney" /><span id"confirmspan"></span>接收值: document.getElementById(…...

中西方对时间的差异_中西方时间观念的不同
中西方时间观念的不同文化背景不同所形成的时间观也不同。时间观制约着人们的行为模式,常常给跨文化交际带来困难和障碍。时间是人和周围世界存在的一种形式。时间观是人们在认识和改造客观世界的过程中逐渐形成的,人们的时间观一旦形成后,其言行就不知不觉地接受它…...

Java文件上传【通用】
Java文件上传 主要是针对于网页来说,一般是通过input的file类型上传文件流到后台,再通过后台处理将文件移动到指定位置达到上传的目的。 这里贴代码时,主要是以springboot框架为例,但是是通用的。 1、表单提交上传 <form enct…...

Nacos框架原理
2021年12月21号,阿里巴巴进行了《Nacos框架与原理》一书的线上发布会。 电子书链接:https://pan.baidu.com/s/17yggoq106lJAKxE2s_2pVw 提取码:hdp9...

蓝桥杯 -- 0-1背包 完全背包java
0-1背包以及完全背包 蓝桥杯对应题目 https://www.lanqiao.cn/problems/1174/learning/ https://www.lanqiao.cn/problems/1175/learning/ 0-1背包题目描述 小明有一个容量为 VV 的背包。 这天他去商场购物,商场一共有 NN 件物品,第 ii 件物品的体…...

微信小程序点击图片放大图片
wx.wxml 最主要的就是bindtap点击事件 <view class"right right_fl" bindtap"previewImg"><view style"color:#104199;">点击查看</view><image src"http://mb.webhh.net/xiaochengxu/HRui/vip/message_arrow.png&quo…...

ABAP 基本语法
ABAP 基本语法语句撰写语句时需要考虑的四件事:注释抑制空白空白线插入线消息语句 ABAP源程序由注释和ABAP语句组成。 ABAP中的每个语句都以关键字开头,以句点结尾,ABAP不区分大小写。 程序中的第一个非注释行以单词REPORT开头。 报告将始终是创建的任…...

一文辨析 Java、JSP、JavaScript
还在傻傻分不清?Java、JSP、JavaScript ,本文带你辨析其区别与联系 Java 文件格式: .java Java 是印度尼西亚“爪哇岛”的英文名,因气候环境,地理位置等因素盛产咖啡而闻名。Java 语言中的许多命名都与其有关…...

P1318 积水面积
解题思路:对于每一个点,去往前找比它大的第一个数,去往后找比他大的第一个数,然后算min(arr[left]-arr[i],arr[right]-arr[i]),答案加上这个值乘以(right-left-1),如果在往前找的时候…...

Ubuntu 18.04下Qt Creator无法输入中文,IBUS输入法
问题 在Linux环境下,用Qt编写的程序运行时不能在诸如输入框、文本框中输入中文(不会激活中文输入法)。 注意与输入法类型有关(基于iBus或Fcitx) 原因 Qt程序的中文输入支持需要用Qt插件,Qt自带的插件中&…...

爱奇艺世界大会|中国影视行业该走出“作坊”了
这届观众口味越来越不好满足了。“剧情逻辑硬伤、服化道出戏、特效五毛、剪辑跳跃、演技尴尬...”随着影视视野与阅历的提升,观众群体的“专业化”,背后带来了对影视作品质量期望的逐年上涨;而与之相对的,水平原地踏步的似乎永远都…...
netty之微信-群聊的发起与通知(十八)
群聊的发起与通知 这小节,我们来学习一下如何创建一个群聊,并通知到群聊中的各位成员 我们依然是先来看一下最终的效果是什么样的。 1. 最终效果 服务端 创建群聊的客户端 其他客户端 首先,依然是三位用户依次登录到服务器,分别是…...

前端应用 - 汉字笔顺书写演示带拼音及发音
本程序实现汉字笔顺练习,同时有拼音及汉字发单,先见效果图: 详细程序包可在我共享中下载。 js主文件(app.js) var writer; var isCharVisible; var isOutlineVisible; function printStrokePoints(data) { var …...

java和JSP和JavaScript区别
JSP全称是:java server page,意思是基于JAVA服务器的网页技术,跟asp,php一样,都是网页制作用的语言JavaScript:也成为JS,跟JAVA没啥关系,就是赶时髦起个这名字,是一种脚本语言&#…...

VS“无法查找或打开PDB文件”是怎么回事?如何解决
VS“无法查找或打开PDB文件”是怎么回事?如何解决 有时候,我们使用 VS(Visual Studio)编译程序时会出现“无法查找或打开PDB文件”的提示,并且此时程序会生成失败,无法运行,如下图所示…...

Python学习之路——类-面向对象编程
类 面向对象编程通过类获取一个对象的过程 - 实例化类名()会自动调用类中的__init__方法类和对象之间的关系?类 是一个大范围 是一个模子 它约束了事务有哪些属性 但是不能约束具体的值 对象 是一个具体的内容 是模子的产物 它遵循了类的约束 同时给属性赋上具体的值类有一个…...

WinForm 圆形进度条CircularProgressBar
新建一个WinForm,并打开Nuget包管理器 搜索CircularProgressBar,并安装 编译一下当前项目,会在当前项目debug中生成一个WinFormAnimation.dll,这是CircularProgressBar圆形进度条的依赖文件,必须要有 右键工具箱选择项,…...

Mysql 分组求和
SELECT sum( f.f_amount ) AS f_amount FROM t_warehousebillsfees AS f GROUP BY f.f_mblno, f.f_dc ; SELECT sum( 求和字段名 ) AS 别名 FROM 表名 AS 别名 GROUP BY 分组字段名 sum() 求和函数 GROUP BY 分组...

excel计算机课程表,Excel如何制作课程表
Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。我们经常会使用Excel制作各种各样的表格,下面就给大家介绍一下如何使用Excel制作我们日常使用的课程表,一起来学习一下吧。Excel制作课程表步骤:首先选…...

信奥一本通-动态规划-例9.2-数字金字塔-方法四-逆推法代码实现
#include<bits/stdc.h> using namespace std;int main(){//x y分别为行列int x, y;//金字塔的高度int n;cin >> n;//a[][][1]表示数据本身 //a[][][2]表示与下层相加之后的最大和 //a[][][3]表示前往下一层是不变(0)还是向右(1)int a[51][51][4];memset(a,0,sizeof…...

AI4DB:openGauss人工智能参数调优之X-Tuner
X-Tuner:参数调优与诊断 一、概述 二、使用准备 三、使用示例 四、获取帮助 五、命令参考 六、常见问题处理 一、概述 增量物化视图可以对物化视图增量刷新,需要用户手动执行语句完成对物化视图在一段时间内的增量数据刷新。与全量创建物化视图的不…...

解决rosdep一切问题(小学生都会)
1,什么是rosdep? rosdep是一款一键安装依赖的工具,通俗来说就是在你用别人的功能包时可以一键安装别人要求需要的依赖。 2,为什么那么难安装? 由于是国外源的原因导致rosdep国内用户很难安装,但好消息是…...

网络安全观察恶意流量观察
恶意流量观察 Web 威胁 5.3.1.1 Web 攻击态势 Web 站点作为企业或个人对外提供的服务,往往是黑客首选的攻击目标。2019 年,针对 Web 的攻 击态势中,传统攻击模式和攻击方法仍占主流,如服务器 信息泄露、资源盗链、CORS攻击、SQL…...

2022阿里云金秋上云双十一轻量服务器2核2G 2核4G
2022阿里云双十一已经上线,本次活动主会场主要推出的则是轻量应用服务器,一共分为两个版本,分别为2核2G以及2核4G的,这两个版本适合个人用户使用,学习测试,搭建个人博客,论坛;或者是…...

计算机word做课程表实验报告,word制作课程表.doc
word制作课程表word制作课程表Word表格操作起来简单容易上手,不像Excel功能一大堆但非专业人士并不会用它制作表格。有些表格数据需要用Excel来完成,但是有些简单基本的表格我们只需要用Word完成即可。许多朋友对Word表格的制作还不是很熟习,…...

yarn 运行electron
1安装配置环境 # 安装yarn $npm install -g yarn # 初始化 $yarn init # 配置镜像 $yarn config set ELECTRON_MIRROR https://cdn.npm.taobao.org/dist/electron/ # 增加依赖 $yarn add electron --dev --platformwin64 "devDependencies": { "electro…...

跨设备链路聚合 M-LAG配置案例
组网需求 如下图所示,通过配置M-LAG双归接入IP网络可以满足以下要求: 当一条接入链路发生故障时,流量可以快速切换到另一条链路,保证可靠性。 为了高效利用带宽,两条链路同时处于active状态,可实现使用…...

在 JPA 和Hibernate中映射多对多关系的 6 种方法
有几种方法可以通过使用ManyToMany、OneToMany和ManyToOne来映射 JPA 和Hibernate中的多对多关系,包括 使用单个主键、OneToMany和ManyToOne连接实体单向和双向映射 使用复合主键、OneToMany和ManyToOne连接实体单向和双向映射 不带连接实体的单向和双向映射&…...

实验四 选择结构
第1关:奇数偶数判断 任务描述 本关任务:从键盘输入一个正整数,判断其奇偶性。 编程要求 根据提示,在右侧编辑器补充代码,从键盘输入一个正整数,判断其奇偶性。 测试说明 平台会对你编写的代码进行测试: 测试输入:89; 预期输出: 89 是奇数! 测试输入:90; 预期输…...

logrotate程序的使用
logrotate程序 logrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。下面就对logrotate日志轮转操作做一梳理记录: 1. 配置文件介绍 Linux系统默…...

专注于自媒体短视频领域四年后的运营问题汇总-第二集
专注于自媒体短视频领域四年后的运营问题汇总-第二集 大家好,我是我赢助手,专注于自媒体短视频去水印、去重和文案提取运营! 如果说自媒体是一个流量平台,那么短视频就是这个流量平台上最直接也是最快的流量分发平台。 有很多短…...

遗传算法解决TSP问题(附matlab源程序)
已知n个城市之间的相互距离,现有一个推销员必须遍访这n个城市,并且每个城市 只能访问一次,最后又必须返回出发城市。如何安排他对这些城市的访问次序,可使其 旅行路线的总长度最短? 用图论的术语来说,假…...

vue使用qrcodejs绘制二维码
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initial-sc...

SpringMVC框架中注解的详细介绍
目录 前言 1. Controller注解(用在类上面) 2. RequestMapping(用在类上面) 3. RequestMapping(用在方法上面) 4. ResponseBody注解(用在方法上面) 前言 SpringMVC框架是专门用来做Web开发的,他之所以自出生以来就受到广大程序员们的热爱,不仅仅是…...

图解RGB565、RGB555、RGB16、RGB24、RGB32、ARGB32等格式的区别
音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器android全平台编译ffmpeg合并为单个库实践android-studio使用cmake编译ffmpeg实践android全平台编译ffmpeg视频解码器实践android全平台编译ffmpeg支持命…...

PHP实现分页功能代码_php分页类代码
php分页类代码这是一款简单,方便,功能齐全的分页类,可以根据自己的.需要更改CSS样式文件以实现分页颜色的控制,利用php分页类,可以省去自己很多时间,只需要在分页的地方嵌入即可,下面看下使用方…...

撸一撸Spring Framework-IoC-Resource
我们经常需要读取外部资源到应用中,比如文本文件、properties文件、图片文件等。这些资源可能位于不同的位置,比如文件系统、classpath下的资源、或者远程服务器上的资源。通常,我们需要通过不同的API分别加载不同类型路径的资源,…...

测试设计点-pc端和移动端微信加入群聊
PC端: 点击”+“能否出现添加联系人面板 联系人是否全部加载 联系人头像昵称备注信息是否正确 输入框是否支持联系人备注,名称模糊查询 模糊查询的联系人能否勾选并且移除 联系人能否勾选 联系人勾选后再次点击能否取消勾选 勾选多个联…...

Swift语法学习--字符字符串
Swift语法学习–字符&字符串...

signature=091d876c3fb53658fc37bc5ef806e157,Signatures of Holocene Hydrological Processes from Sedime
Boggs, S.J. (1995) Principles of sedimentology and stratigraphy: Prentice Hall, 585p.Cooper, J.A.G. (1994) Lagoons and microtidal coasts. In: Carter, R.W.G. and Woodroffe, C.D. (Eds.), Coastal Evolution: Late Quaternary Shoreline Morphodynamics. Cambridge...

手机信号延迟测试软件,使用Fing在手机上诊断网络状况
原标题:使用Fing在手机上诊断网络状况Fing是Android和iOS上的一款网络工具类应用,可以进行多种网络诊断,十分方便。扫描当前所在的局域网的主机打开app主界面,app将自动扫描手机所在局域网的所有主机。这样我们就可以知道局域网中…...

Google ProtoBuf介绍
一、背景 前段时间了解到有公司用gRPC、Pulsar、Nacos、SkyWalking、OpenTelemetry、Prometheus、Envoy、Grafana、Sonar、PowerJob、Apollo 这些技术,也是Java路线的,很惭愧,这些我几乎都不了解,从13年以来玩Android、玩Python、…...

java怎么求素数_如何用Java求素数?
public static void main(String[] args) {int i;int n;int k 0;for (n 3; n<100; n) { //3~100的所有数i2;while (iif (n%i0) break; //若能整除说明n不是素数,跳出当前循环i;}if (in) { //如果in则说明n不能被2~n-1整除,是素数k; //统计输出数的个…...

docker registry web ui 及私有镜像仓库 安装配置记录
本次安装记录基于docker 安装,宿主机ip:192.168.5.16 1,创建宿主机目录(用于存放容器配置文件): /securitit/registry/certs/ /securitit/registry/auth/ /securitit/registry/conf/ /securitit/regis…...

mysql两张大表关联查询_关于mysql当中给数据量特别大的两个表做关联查询的时候解决查询速度很慢的解决方法...
今天碰到了两个表做关联查询的mysql,这两个表的数据量都是特别大的,有一个表的数据是上亿条的数据,有一个是几百万的数据,查询的速度是特别慢,然后我看了一下执行计划,下面是执行执行计划:看到上…...

HTML伪元素
<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><!-- 通过css创建假的元素创建伪元素::before,在元素内部的最前面创建一个假子元素:after,在元素内部的最后面创建一个假子元素伪元素默认是行块元素,没有…...

Android Jetpack Navigation基本使用
Android Jetpack Navigation基本使用本篇主要介绍一下 Android Jetpack 组件 Navigation 导航组件的 基本使用当看到 Navigation单词的时候 应该就大概知道 这是一个关于导航用的,下面我来简单介绍一下 如何使用Navigation组件的基本使用流程,并且一步步 实际操作一番 Navig…...

java小游戏制作(maxfo)
去年暑假期间看完java紫皮书上的知识点后,陆续模拟了贪吃蛇,和飞机大战小游戏后,开始了自己的java小游戏制作。 本文目录video工具主要逻辑整体思路所用知识游戏目录结构背景地图绘制底板层(草地墙体)修饰层࿰…...

二代身份证读取-微调版
说起微调其实就是对 上一篇文章 今天意外和身份证结缘 中提到的代码码放和调用一些巧妙的用法(至少小鬼觉得很有意思很巧妙)。 为什么有必要在写一篇 写的理由千千万;不写的理由万万千。对于小鬼来说就是:我吃饱了,撑着了&#x…...

IDEF的常用建模方法
IDEF0 业务流程建模 IDEF1 信息建模 IDEF1X 数据建模 IDEF2 仿真建模设计 IDEF3 过程描述获取方法 IDEF4 面向对象的设计...

【软件工程基础复习整理】第四章需求分析(4)IDEF1X数据建模
IDEF1X数据建模 实体时具有相同属性或特征的显示或抽象事实的结合,这个集合的一个元素便称为实体的一个实例 在一张IDEF1X图中,一个实体只能在图中出现一次。 可标定联系:子实体的存在依赖于父实体的存在 不完全分类联系:可能存…...

IDEF0与IDEF3的关系
IDEF0是对系统的功能建模方法,IDEF3是对系统的过程建模方法。由于系统的功能与过程建模都属于系统行为特征的描述,所以在实际应用中往往是IDEF0与IDEF3相互补充,相互配合,共同完成系统的行为建模的。但是IDEF规范并没有对IDEF0与I…...

C语言常量EF,C语言之详解#idef等宏.doc
C语言之详解#idef等宏C语言之详解#ifdef等宏指令用途#空指令,无任何效果#include包含一个源代码文件#define定义宏#undef取消已定义的宏#if如果给定条件为真,则编译下面代码#ifdef如果宏已经定义,则编译下面代码#ifndef如果宏没有定义&#x…...

数据库|数据库表的设计与实现-数据建模--工程化方法-IDEF1X
工程化建模–IDEF1X IDEF1X是ER图的细化 IDEF1X是一种进行数据建模或数据库设计的工程化的方法 重要概念 实体 独立实体-----强实体 从属实体-----弱实体联系 可标定连接联系 非标定连接联系 分类联系 非确定联系属性/关键字 属性 主码 候选码 外来码 实体 独立实体…...

计算机三级数据库----IDEF1X___联系
IDEF1XIDEF1X建模方法一、IDEF1X概述二、IDEF1X模型元素1、实体集:2、联系:(1)标定型联系:(2)非标定型联系:(3)分类联系:(4) 不确定联系:3、属性IDEF1X建模方法 一、IDEF1X概述 1、IDEF0侧重描述系统功能,被称为功能建模方法;IDEF1X侧重分析、抽象和概括应用领域中…...

IDEF1X
IDEF系列方法是由美国空军的ICAM(Integrated Computer Aided Manufacturing)计划中首次提出一种复杂系统分析与设计方法,它包括了功能建模(IDEF0)、信息建模(IDEF1)、动态建模(IDEF2)、数据建模(IDEF1x)、过程描述获取方法(IDEF3)等。其中,IDEF1x是IDEF1…...

[数据库系统]数据建模:工程化方法 之 IDEF1x规范
IDEF1x规范1.实体2. 联系1.实体 实体(Entity): 一个“实体”表示一个现实和抽象事物的集合,这些事物必须具有相同的属性和特征。这个集合的一个元素就是该实体的一个实例。 实体被区分为独立实体和从属实体; 独立实体:一个实体的实例都被唯…...

【数据库原理系列】IDEF1x工程化方法
IDEF1x工程化方法 IDEF1x是将E-R模型扩充语义含义而形成的, 或者说,IDEF1x是E-R图的细化 IDEF1x是一种进行数据建模或数据库设计的工程化的方法 实体(Entity) 独立标识符实体/独立实体(Identifier-IndependentEntity)–强实体从属标识符实体/从属实体(Identifi…...

数据仓库专题18-数据建模语言IDEF(转载)
转载:link 1引言 IDEF的含义是集成计算机辅助制造(Integrated Computer-AidedManufacturing,ICAM)DEFinition。最初的IDEF方法是在美国空军ICAM项目建立的,最初开 发3种方法:功能建模(IDEF0)、信息建模…...

win10去掉快捷方式小箭头
打开软媒魔方(魔方优化大师) 然后打开 美化大师 选择移除快捷方式上的箭头 http://jingyan.baidu.com/article/8065f87f80625c23312498b4.html...
技术解析|如何绘制密度分布图
点击上方『早起python』关注早起和我一起,成为更好的自己前言在前几天对数据分析师与算法工程师进行岗位对比分析的文章中,我们使用了密度分布图和箱线图对薪资水平与学历对薪资的影响进行了分析,那么早起就对这两种图形的绘制方法进行解析&a…...

三角形或圆内均匀分布随机点的计算
圆: 均匀产生角度,均匀产生半径。半径的概率应与其长度一致。 clear for i1:1000; thetarand(); xrand(); rsqrt(x); % 均匀的半径 x1(i)r*cos(2*pi*theta); x2(i)r*sin(2*pi*theta); end plot(x1,x2,o) 半径的概率密…...

PMP考试必用公式大全
为大家倾情打造通关系列宝典。该系列宝典参考PMBOK6、才聚题库、PMI权威资料、以及历届5A学员的经验总结,涵盖PMBOK重点、难点、PMP关键考点。 三点估算(适用于持续时间与成本估算) β分布:Te(To4TmTp)/6;标准差&…...

三角网算法
1. 基本概念 三角网是由一系列连续三角形构成的网状的平面控制图形,是三角测量中布设连续三角形的两种主要扩展形式,同时向各方向扩展而构成网状,优点为点位分布均匀、各点之间互相牵制、图形强度较高,缺点是扩展较缓慢。 三角网是…...

R语言:企业风险分析(1)【概率分布大全,pnrom()等】
本章将介绍pnrom(),qnorm(),dnrom(),rnorm() ,以及指数正态分布,均匀分布,三角分布,几何分布,二项分布,泊松分布,贝塔分布,指数分布等。 前言&…...

三角形内的均匀分布点(随机)
Triangle Point Picking...

两个均匀分布差的绝对值是一个三角分布
UTF8gbsn 假如x,y∼U(0,1)x,y\sim U(0,1)x,y∼U(0,1), 也就是说x,yx,yx,y都是(0,1)(0,1)(0,1)上的均匀分布. 问题是:z∣x−y∣z|x-y|z∣x−y∣是什么分布? 采样并列图表 import numpy as np import matplotlib.pyplot as pltN 500000data [] for k in range(N):x1 np.ra…...

Matlab之一行代码生成服从三角分布随机数
Matlab之一行代码生成服从三角分布随机数 0 先上干货 代码长这样: x1 random(makedist(Triangular,a,3,b,4,c,5),1,10000) %生成10000个服从下限为3,上限为5,众数为4(最可能出现的数)当然这里面的makedist函数还有别…...

如何在 R 中使用三角分布(附示例)
为了计算 R 中三角分布的概率,我们可以使用EnvStats包中的ptri( ) 函数,它使用以下语法: ptri(q, min = 0, max = 1, mode = 1/2) q:感兴趣的分位数 min : 分布的最小值 max : 分布的最大值 mode : 分布的峰值 示例 1:计算小于某个值的概率 假设一家餐馆估计他们下周的…...
三角形概率分布
三角形分布,也有人称三角分布,是概率论与统计学中,以低限为a、众数为c、上限为b的连续概率分布。在应用中,a,b,c又分别称为最小值、最大值和最可能值。三角形分布的概率密度函数如下式: f(x|a,b…...

百度文库里的文字不能直接复制怎么办?用上这招终极解决方法
问题:在百度文库里右键复制文字时,会跳出要付费会员才可以复制 解决方法: 在该页面的空白处,右键,点击审查元素,再按F1,找到右边的调试程序,第一个打勾,如下图ÿ…...

百度网页不能连接服务器错误,win10系统登陆百度浏览器提示连接服务器错误的恢复步骤...
有关win10系统登陆百度浏览器提示连接服务器错误的操作方法想必大家有所耳闻。但是能够对win10系统登陆百度浏览器提示连接服务器错误进行实际操作的人却不多。其实解决win10系统登陆百度浏览器提示连接服务器错误的问题也不是难事,小编这里提示两点:1、…...

mac safari可以上百度,但是很多网站上不去
问题描述:最近本人碰到了一个问题,mac用safari上网,很多网站都上不去,只有百度可以上,而且很多网站显示网站服务器故障,还有app store无法下载app,点了安装app却一直转圈圈,根本无法…...

百度地图infowindow上添加自定义点击事件
这是个困扰我已久的问题。就是在百度地图的infowindow上添加一个按钮,点击按钮,调用自定义事件。 之前我的解决方案是: 这样是可以的,当我点击“查看详情”时,会调用detailMsg方法,但是后来发现一个问题&am…...

百度官网上不去
百度官网上不去除了百度的网站另外的网站都能上去,最后在百度用户服务中心找到了结果; 我使用IP地址 http://202.108.22.5/是能够正常访问的,然后hosts文件中也没有www.baidu.com的相关信息,最后修改DNS地址后能正常访问了,修改D…...

android8carlife连接不上,carlife为什么连接不上汽车 连接不上汽车解决方法
使用 CarLife 互联之前,请确认手机车机都同时装有 CarLife(去官网下载)。一、 Android 有线连接准备①手机设置→②打开开发者选项→③勾选 USB 调试→④允许 USB 调试→⑤USB 连接手机二、 只要是支持 MFi 的车机均可使用 CarLife iPhone 有线连接的方式࿰…...

如何通过 6 个简单步骤在百度上看到您的网站
我们都依赖百度强大的搜索引擎来帮助我们管理我们的生活。从了解最新趋势到获得解决问题的建议,我们会发现很难想象没有它我们会在哪里。我们很容易认为这个平台是我们用来搜索关于其他人、地方或事件的信息的东西。然而,作为一个小企业主,你…...

树莓派上使用百度网盘
想在树莓派上安装下载百度网盘里面的内容,尝试过以下方法 安装官方提供的Linux安装包,实际测试,在树莓派上装不上;使用bypy工具 地址:https://github.com/houtianze/bypy,也有图形界面,但是不知…...

Opencv-摄像头图像处理
打开摄像头 import cv2 cap cv2.VideoCapture(0) while(cap.isOpened()):# 获取一帧ret, frame cap.read()##图像处理frame1cv2.flip(frame,1)graycv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)cannycv2.Canny(gray,80,150)##cv2.imshow(frame, canny)if cv2.waitKey(1) ord(q…...

python-opencv实现调用实时摄像头进行图像处理(包含窗口的优化)
python-opencv实现调用实时摄像头进行图像处理(包含窗口的优化) 以前互联网加的时候做的图像识别的工作,有些经验发出来让大家康康。 主要是大体的框架,不涉及算法。 首先创建一个摄像头的实例: camera cv2.VideoC…...

OpenCV图像处理技术(Python)——摄像头以及视频处理
OpenCV图像处理技术(Python)——目标追踪 © Fu Xianjun. All Rights Reserved. 文章目录前言学习目标学习内容1.打开摄像头2.摄像头图像处理3.摄像头美颜4.人脸识别API5.视频处理总结前言 家人们没错又是我,我又来讲解东西了。 学习目标…...

android高级技术之相机的前后摄像头切换
android高级技术之相机(一):http://blog.csdn.net/program008/article/details/50557296 前面的分享中我们学习了相机的基本属性,包括相机的预览属性,拍照,保存相片,旋转相片等,今…...

python获取摄像头数据_用Python获取摄像头并实时控制人脸 !
实现流程从摄像头获取视频流,并转换为一帧一帧的图像,然后将图像信息传递给opencv这个工具库处理,返回灰度图像(就像你使用本地静态图片一样)程序启动后,根据监听器信息,使用一个while循环,不断的加载视频图…...

OpenCV像素点操作 图片特效
目录 一:图片的读取显示 二:OpenCV像素点操作 雪花屏特效 色彩反转 暗色处理 毛玻璃特效 三:OpenCV库函数的使用 高斯模糊 XY轴模糊 灰度化处理 中值滤波 四:OpenCV视频处理 播放视频:那些年,…...

android 切换摄像头加动画,android前后摄像头切换
android前后摄像头切换demo,startview后的页面上有切换、拍照两个按钮,拍照后照片未保存,需要保存的请看下方注释,实现了拍照、聚焦功能,以下是CameraPreview.java源码:package com.myselftest;import java…...

2022年电工(高级)特种作业证考试题库及在线模拟考试
题库来源:安全生产模拟考试一点通公众号小程序 2022年电工(高级)操作考试题为电工(高级)复审题库的多种练习模式!2022年电工(高级)特种作业证考试题库及在线模拟考试根据电工&#…...

C#开发学习笔记:C#实现打印Excel文档
//准备读取生成的Excel文档 Microsoft.Office.Interop.Excel.Application excel new Microsoft.Office.Interop.Excel.Application();//lauch excel application excel.Visible true;//该句代码不设置,wb.PrintPreview()将无法打开Excel文档 // 以只读的形式打开EXCEL文件 Wo…...

CPLEX中导入excel数据
1.在.mod文件中定义好变量,例如SupDem int SupDem[1..n]...;2.在.dat文件中从excel读取SupDem的数据 SheetConnection s("D:\\study\\relateddata.xlsx"); SupDem from SheetRead(s,"node!H2:H3685");另外,注意在编程之前…...

【Excel学习笔记2】通过excel从网站上获取数据的方式
一、关于在excel哪儿输网址?只有一种方法 数据——自网站——输入网址url即可 二、关于如何设置获取后数据的刷新频率?两种方法: 1.右边“查询&连接”栏,找到对应的table,右击——属性——设置频率即可 2.数据…...

excel学习-连接符+text函数
文章目录连接符&text函数连接符& text函数...

Go语言数据结构
Go语言数据结构 参考资料来源于菜鸟教程。 在Go编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,觉可以充分利用内存。 Go语言按类别有以下几…...

excel 公式 单引号 concat_Excel两个新函数帮你快速搞定批量连接
如果将两个文本连接起来,通常第一反应用连接符号"&"。使用连接符&连接文本字符记得曾经有记者采访刘强东问奶茶妹妹漂不漂亮,他竟然回答看不出来好赖…当时真觉得这家伙身在福中不知福,饱汉不知饿汉饥。果然之后还闹出一些…...

oleDbConnection 连接Excel学习
"ProviderMicrosoft.Jet.OLEDB.4.0;Data SourceD:/MyExcel.xls;Extended Properties""Excel 8.0;HDRYes;IMEX1" 针对如果上连接字符串 对相关属性进行说明如下:"HDRYes;”指示第一行中包含列名,而不是数据,"I…...

C++使用ODBC连接EXCEL表格
C使用ODBC连接EXCEL表格前言干货前言 最近在学习C的MFC,在MFC中需要对EXCEL表格进行一些操作,作者在网上找了很多资料,很多资料都是好几年前的,说的不是很明白.哪怕直接copy也会有很多错误.关于OLE操作EXCEL的现在还不懂.这次记录一些我在连接EXCEl过程中的一些过程,希望能让像…...

3分钟学会Excel“自主学习”
这么强大的CtrlE,你还不会用吗? Excel作为操作平台上的电子制表软件的霸主,其丰富的函数:sum、average、vlookup等;丰富的快捷键:ctrlA、ctrlT、ctrl E、ctrl\等,大大提升了我们的办公效率。 本文,我们来…...

Docker 应用实践-镜像篇
一个 Docker 镜像往往是由多个镜像层(可读层)叠加而成,每个层仅包含了前一层的差异部分,单个镜像层也往往可以看作镜像使用,当我们启动一个容器的时候,Docker 会加载镜像层并在其上添加一个可写层。容器上所…...

(二十二)简单算法和Lambda表达式
目录 前言: 1.选择排序 2.二分查找 3.Lambda表达式 前言: 算法是一个程序和软件的灵魂,要成为一名优秀的程序员,只有对基础算法全面掌握,才能在设计程序和编写代码的过程中显得得心应手。常用的基础算法有快速排序算法、堆排序算法、归并排…...

长知识了
1、forward和redirect的区别 答:Forward和Redirect代表了两种请求转发方式:直接转发和间接转发 直接转发方式(Forward):客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,由第二…...

【Python中字典的len()方法】
选择题 以下python代码输出什么? dic1{A:1,B:2,C:3} print(len(dic1)) A 6 B 3 C 1 D 4 问题解析 1.len()方法返回对象(字符、列表、元组等)长度或项目个数。 2.len(dic)计算字典dic的元素个数(长度),即键的总数。字典中每一个元素…...

【Python中字典的删除操作-del和clear】
快速理解 del和clear的区别 dict0{key1: 1, key2: 2} del dict0[key1],表示删除键为key1的键值对; del dict0表示删除整个字典,删除后字典不存在; dict1.clear(),清空字典,删除后字典仍存在。 选择题 以下python…...

4、字符串处理
目录 一、字符串的构造 二、字符串比较 三、字符串查找 四、字符串替换 五、字符串——数值转换 Matlab中的字符串函数有: 一、字符串的构造 字符串或字符串数组的构造可以通过直接给变量赋值来实现,具体表达式中字符串的内容需要写在单引号内。如…...

python字典中的键是什么_深入理解Python中字典的键的使用
字典的键字典中的值没有任何限制, 可以是任意Python对象,即从标准对象到用户自定义对象皆可,但是字典中的键是有类型限制的。(1)不允许一个键对应多个值 必须明确一条原则:每个键只能对应一个项。也就是说:一键对应多个…...

Linux文字处理和文件编辑(三)
1、Linux里的配置文件: /etc/bashrc文件:该配置文件在root用户下,权限很高。~/.bashrc文件:只有当前用户登录时才会执行该配置文件。每次打开终端,都会自动执行配置文件里的代码。比如,alias md‘mkdir’就…...

电脑怎么设置默认游览器?Windows10
1、打开设置 2、选择【应用】,这里面有【默认应用的选项】 3、点击【默认应用】,往下滑看到浏览器,点击再选择你想要默认打开的浏览器就好了!!!...

该文件没有与之关联的应用程序来执行该操作。请安装应用,请在默认应用设置页面中创建关联
最近在win10新安装的一个应用程序,在程序中打开指定文件时报了"该文件没有与之关联的应用程序来执行该操作。请安装应用,请在默认应用设置"页面中创建关联",原因是该文件没有默认的打开程序,如果是txt或xml这些文件…...

WIN10点击任务栏资源管理器报错:该文件没有与之关联的应用来执行操作。请安装应用,若已安装应用,请在”默认应用设置“页面中创建关联。
问题出现原因:使用右键清理工具ContextMenuManager_Win10.exe,删除右键显示内容后,出现的问题。 解决方式: 新建一个注册表文件temp.reg,内容如下 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Folder…...

Windows10如何取消默认打开应用回到无默认状态
在使用软件的过程中,可能会因为不小心点选,或者是应用的流氓行为强行设置了始终使用此应用打开xxx.xx文件。当这种设置完成时,所有该类型的文件全部会变成该软件的图标,如果是正确的还好,而如果是错误的则会非常烦恼&a…...

win10 设置文件的默认打开应用
背景:win10系统当你打开一个应用时每次都要选择该默认应用,需要手动设置一下默认应用 选择系统 选择默认应用——选择按文件类型指定的应用 例如设置打开后缀为.sql的文件应用为Sublime Text 完!...

WIN10打开资源管理器显示该文件没有与之关联的程序来执行该操作.请安装应用,请在“默认应用设置”..关联 —— 解决方案
WIN10打开资源管理器显示该文件没有与之关联的程序来执行该操作.请安装应用,请在“默认应用设置”..关联 —— 解决方案参考文章: (1)WIN10打开资源管理器显示该文件没有与之关联的程序来执行该操作.请安装应用,请在“默认应用设置”..关联 …...

STM32个人笔记-I2S
现实存在的声音是模拟量,这对声音保存和长距离传输造成很大的困难,一般的做法是把模拟量转成对应的数字量保存,在需要还原声音的地方再把数字量的转成模拟量输出。 模拟量转换成数字量,3个过程:采样、量化和编码。 蓝…...

Qt 学习笔记 8. QStringList
1.clear() 函数来清空 QStringList 对象中的内容 在 Qt 中,我们可以使用 clear() 函数来清空 QStringList 对象中的内容,将其重新变为空列表。 以下示例代码演示了如何清空 QStringList 对象中的内容: QStringList myList {"apple"…...

书籍阅读-《杨绛传:墨染里的彩色人生》
作者: 林希美 出版社:台海出版社 出版时间:2021-09 2023年3月26日 1.直到她知道一家人南归的原因,才深知许多事不是静静陪伴就能岁月安好。 2.一个人从懂事起便丢了童年…...

基于`Caché/IRIS`实现`Socket`解决方案
文章目录基于Cach/IRIS实现Socket解决方案简介什么是Socket?Socket有两种类型使用场景Socket与Web Socket的区别工作流程示例1. 利用Socket实现简单客户端、服务器通信。2. 利用Socket实现客户端服务端文件传输。3. 利用Socket实现实时聊天应用程序4. 利用Socket实现…...

展会邀请|虹科诚邀您3月29-31日参加深圳国际传感器与应用技术展览会!
01 展会介绍 深圳国际传感器与应用技术展览会(Shenzhen International Sensor Technology Expo 2023)将于2023年3月29-31日于深圳会展中心(福田)举办,届时展会规模在原有基础上将扩大一倍,专业技术含量和产…...

考pmp有什么好处?
PMP证书报名条件要求高,这是众所周知的事,那你通过了PMP考试,就证明你是有一定能力的,重要的是,你已经有了至少半年的项目管理经验,并且在你申请考试的前六年内,累计项目管理达三年。 PMP有什么…...

Python入门教程+项目实战-6.5节: 神奇的Python交互模式
目录 6.5.1 理解交互模式 6.5.2 进入交互模式 6.5.3 交互模式的基本用法 6.5.4 在交互模式中获取帮助 6.5.5 退出交互模式 6.5.6 系统学习python 6.5.1 理解交互模式 理解交互模式,首先得理解什么是交互。“交互”在日常生活中很常见,比如人与人之…...

积性函数及其初级应用
积性函数及其初级应用 垃圾博客,我本地 LaTeX 挂了,艹 大量内容和入门方式都参考了 莫比乌斯反演与数论函数 。感谢 CMD 大爷! 0xFF 前置知识 1.质数及其判定,质因数及其分解 小学课本里面讲过质数的定义了,不细讲…...

A1015 Reversible Primes 反转数字后仍为素数
1015 Reversible Primes 分数 20A reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.Now given an…...

简单的电脑网络故障定位
windows 电脑是否有问题 ping 127.0.0.1 检测本地环回口是否可用 测试本地的IP接口地址是否可用 ping 本机IP一般是192.168.0.x或者在命令行输入 ipconfig | find "IPv4"获取 测试本地网关地址是否可用. ping 192.168.0.1或者是254或者通过输入命令行 ipconfig /al…...

随手记 AutoML for Deep Recommender Systems: A Survey
AutoML for Deep Recommender Systems: A Survey AUTOMATED EMBEDDING DIMENSION SEARCH (AUTO-EDS) 动机: 计算资源消耗过大:Embedding占整个模型参数的80%以上 不令人满意的表现:很多特征域的交互是无用的,有些却非常有用&am…...

钢铁冶金VR虚拟仿真实训软件-广州华锐互动
炼钢作业是一个高危、高压、高温的行业,在实际操作中需要严格遵守安全规范和操作规程,一旦出现差错可能造成巨大的经济损失和人员伤亡。 利用广州华锐互动开发的钢铁冶金VR虚拟仿真实训软件,可以有效帮助员工更好地理解和掌握炼钢作业中的相…...

【C#】程序开发,使用 DataTable 还是 List?
系列文章 【C#】单号生成器(编号规则、固定字符、流水号、产生业务单号) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/129129787 【C#】二维码标签制作及打印(完整版) 本文链接:https:/…...

视频添加字幕
工具下载 使用了格式工厂这个工具 官网下载地址,推荐下载5.1.1的,最新版5.1.3有问题,添加不了字幕,浪费了我好长时间。 字幕的添加 打开格式工厂,选择你想转换成的格式,我这里选的是MP4 点击进去之后&…...

PowerPoint 2010
文章目录一、界面介绍二、选项卡1. 文件选项卡2. 开始选项卡3. 插入选项卡4. 设计选项卡5. 切换选项卡6. 动画选项卡7. 幻灯片放映选项卡8. 视图选项卡9. 效果识别三、幻灯片操作1.选择幻灯片2.移动(调整幻灯片顺序)和复制3.删除幻灯片四、幻灯片放映1.按次序放映2.…...

异常:Error和Exception
异常机制(Exception) 什么是异常 实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,…...

2023年政府飞地经济研究报告
飞地概述 飞地是指一个国家或地区的领土内,被另一个国家或地区所包围的、不与其领土相连的一块独立区域。这种情况通常是因为历史、政治、地理等原因而形成的。 飞地通常存在于两个国家或地区之间,其中一个国家或地区的领土将另一个国家或地区的领土分…...

【Python+selenium】自动化生成测试报告
批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、入HTMLTes…...

小皮Windows web面板漏洞详解
漏洞简介 PhpStudy国内12年老牌公益软件,集安全、高效、功能与一体,已获得全球用户认可安装,运维也高效。 支持一键LAMP、LNMP、集群、监控、网站、数据库、FTP、软件中心、伪静态、云备份、SSL、多版本共存、Nginx反向代理、服务器防火墙、…...

MySQL OCP888题解069-CHECK TABLE
文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3.1、知识点1:CHECK TABLE语句4、总结1、原题 1.1、英文原题 1.2、答案 B、E 2、题目解析 2.1、题干解析 本题主要考察CHECK TABLE的作用和注意事项。 2.2、选项解析 C…...

【C++进阶】异常
文章目录C语言传统处理异常的方式C异常概念异常的用法异常的抛出和捕获异常的重新抛出异常安全异常规范自定义异常体系标准库异常体系异常的优缺点C语言传统处理异常的方式 传统的错误处理机制: 终止程序,如assert,缺陷:用户难以…...

【Python入门第四十天】Python丨NumPy数组创建
创建 NumPy ndarray 对象 NumPy 用于处理数组,NumPy 中的数组对象称为 ndarray。 我们可以使用 array() 函数创建一个 NumPy ndarray 对象。 实例 import numpy as np arr np.array([1, 2, 3, 4, 5])print(arr)print(type(arr))运行实例 type(): 这个内置的 Py…...

【第十一届“泰迪杯”数据挖掘挑战赛】B题产品订单的数据分析与需求预测“解题思路“”以及“代码分享”
【第十一届泰迪杯B题产品订单的数据分析与需求预测产品订单的数据分析与需求预测 】第一大问代码分享(后续更新LSTMinformer多元预测多变量模型) PS: 代码全写有注释,通俗易懂,包看懂!!!&…...

sensor HDR
目录 手机拍照HDR:先拍出来图片再融合 实时预览 preview HDR的实现: 4-Cell-3-Exposure HDR sensor DOL-HDR 输出三张不同时间的图像,融合成一帧 : 以下来自Sensor HDR模式简介|极客笔记 (deepinout.com) 手机拍照HDRÿ…...

Redis之底层数据结构
一 Redis数据结构 Redis底层数据结构有三层意思: 从Redis本身数据存储的结构层面来看,Redis数据结构是一个HashMap。从使用者角度来看,Redis的数据结构是String,List,Hash,Set,Sorted Set。从…...

Java实现输入一个整数,计算并输出它的阶乘(20以下)
目录 一、前言 二、代码部分 1.输入一个整数,计算并输出它的阶乘的代码 三、程序运行结果(控制台输出) 四、设计到的有关知识 一、前言 1.本代码是我在上学时写的,有一些地方没能完美实现,请包涵也请多赐教&…...

mysql暂时禁用触发器
在 MySQL 中,你可以使用以下语句来暂时禁用触发器: SET OLD_SQL_MODESQL_MODE, SQL_MODETRADITIONAL; SET GLOBAL event_scheduler OFF; SET GLOBAL log_bin_trust_function_creators OFF; SET DISABLE_TRIGGERS1; 这些语句将禁用触发器、事件调度程序…...

水溶性荧光生物素PEG:Alexa fluor 647 PEG Biotin,AF647 PEG Biotin,Alexa荧光647标记生物素
文章关键词:AF染料试剂,PE-Biotin衍生物,Alexa-fluor 647,Alexa Fluor 染料,Alexa荧光647标记 中文名称:Alexa fluor 647-PEG-生物素,Alexa-fluor 647-PEG-生物素 英文名称:Alexa fl…...

Java——redis通过改写部分源码实现动态db-操作数据库的时候可以指定db操作
Java——redis通过改写部分源码实现动态db-操作数据库的时候可以指定db操作起因data-redis-gps(1)改写的源码类redis连接配置 - RedisConnectionConfiguration.javaLettuce客户端配置 - LettuceConnectionConfigure.java(2)衍生的…...

基于Java+Springboot+vue的网上商城购物系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】
博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(200套) 目录 一、前言介绍 1.…...

NVIDIA GTC 2023大会笔记+思考
思考 1 生成式AI大模型正在解决AI模型训练需要大量标注数据的问题(如Isaac Sim生成机器人仿真数据集,Drive Slim生成道路场景合成数据集) 2 依托类似Omniverse平台实现数字孪生等概念的工业生产流程模式,将因为节省大量现实调试成…...

《计算机网络原理》第一章 计算机网络概述
1.1 计算机网络的定义 定义:以能够相互共享资源的方式互联起来的自治计算机系统的集合主要特征: 资源共享分布在不同地理位置的“自治系统”遵循一定的规则—“协议 ” 1.2 计算机网络的发展历程 1.2.1 以单计算机为中心的联机系统 以单处理机为中心…...

基于springboot+mybatis-plus+mysql+vue实现物业管理系统
基于springbootmybatis-plusmysqlvue实现物业管理系统一、系统介绍1、系统主要功能:2.涉及技术框架:3.本项目所用环境:二、功能展示三、其它系统四、获取源码一、系统介绍 1、系统主要功能: 业主:基本信息、物业收费…...

ANR系列(一)——ANR源码拆解之Service的触发
前言 关于Service的ANR场景还是比较少见的,它的ANR设计原理也是比较简单,在很多监控的方案中都可以看得到 ANR触发场景 通过查阅Android官方文档,我们知道出现以下任何情况,系统都会针对我们的应用触发ANR: Servic…...

TitanIDE:云原生开发到底强在哪里?
原文作者:行云创新技术总监 邓冰寒 引言 是一种新的软件开发方法,旨在构建更可靠、高效、弹性、安全和可扩展的应用程序。与传统的应用程序开发方式不同,云原生是将开发环境完全搬到云端,构建一站式的云原生开发环境。云原生的开…...

基于antdv有可键入搜索的选择器
显示效果 传参效果 使用说明 本组件基于ant design Vue 和 Vue开发(JeecgBoot Vue2.0),带有搜索和键入 组件功能 支持动态传入请求路径动态设置请求方法动态设置是否模糊查询动态将请求方法进行带过来支持键入搜索,根据输入内容…...

GameFramework 框架详解之(十五)Setting配置存档
一.前言 在GameFramework中,我们可以使用Setting模块来管理游戏中的一些配置设置,通俗的来讲就是存档功能。Unity引擎给我们提供的PlayerPrefs工具其实作用是一样的,都是用来存储一些游戏配置的。 二.SettingComponent 类似PlayerPrefs的功能,提供基本数据类型配置的&qu…...

【MySQL】联合查询
目录 1、前言 2、联合查询 3、内连接和外连接 4、案例演示 4.1 查询篮球哥每科的成绩 4.2 查询所有同学的总成绩及邮箱 5、自连接 5.1 显示所有计算机原理成绩比java成绩高的同学 6、子查询 6.1 查询出篮球哥的同班同学 6.2 多行子查询 7、合并查询 1、前言 在实际…...

基于springboot+vue网上在线论坛交流网站
在生活上,他们不必像以前一样,想要在闲暇之余与好友或者是拥有同样兴趣的人交流,还得约时间地点一起聊天讨论,而仅仅需要用身边的电子产品打开论坛网站来进行沟通交流,就可以使自己能够在生活的压力下放松自己的心情&a…...

运用serv-u 、快解析搭建serveru ftp个人服务器方法教程
FTP的意思就是文件传输协议,用来管理TCP/IP网络上大型文件的快速传输。FTP服务器就是局域网信息资源的存储中心,主要是用来进行文件共享和传输。为了便于数据信息的共享和沟通,很多企业甚至个人都想搭建自己的ftp服务器,今天&…...

pytorch项目实战之实时人脸属性检测系统
简介 本项目采用CelebA人脸属性数据集训练人脸属性分类模型,使用mediapipe进行人脸检测,使用onnxruntime进行模型的推理,最终在intel的奔腾cpu上实现30-100帧完整的实时人脸属性识别系统。 ps:本来是打算写成付费专栏的,毕竟这是…...

vue过滤器filter
过滤器实质: 不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用处理 用在两个地方: <!-- 在双花括号中-->{{ message | capitalize }}//capitalize为过滤器名字 <!-- 在 v-bind 中 --><div v-bind:id&qu…...

自主AI能力加速企业智能化转型 | 爱分析报告
报告编委 黄勇 爱分析合伙人&首席分析师 孟晨静 爱分析分析师 外部专家(按姓氏拼音排序) 杜晨阳 力维智联 五维实验室主任 王哲 九章云极DataCanvas 雅图BU总经理 特别鸣谢(按拼音排序) 目录 1. 报告综述 2. 金融…...

整理alacritty使用笔记
github: https://github.com/alacritty/alacritty features: https://github.com/alacritty/alacritty/blob/master/docs/features.md features(中文): https://gitcode.gitcode.host/docs-cn/alacritty-docs-cn/docs/…...

iOS多线程——GCD学习总结
文章目录多线程编程进程线程线程与进程的关系CPU核GCD简介为什么我们要使用GCD任务同步执行(sync):异步执行(async):队列(Dispatch Queue)串行队列(Serial Dispatch Queu…...

服务器安装 scenic plus python包
SCENIC 用来联合分析单细胞转录组和单细胞染色质可及性数据,软件官网:https://github.com/aertslab/scenicplus官方给出的代码很简单,就是 git clone 然后 pip install,但我实际安装时发生各种各样报错,总结了一下&…...

3、DRF实战总结:基于类的视图APIView, GenericAPIView和GenericViewSet视图集(附源码)
前面介绍了什么是符合RESTful规范的API接口,以及使用了基于函数的视图(FBV)编写了对文章进行增删查改的API。在本篇文章将使用基于类的视图(Class-based View, CBV)重写之前的接口。 参考: 1、Django开发总结:Django MVT与MVC设计模式&…...

【Unity 风格化】水墨风渲染01:从总结实现方法开始
写在前面 一直比较迷风格化的东西,之前写PBR其实也是为了后面尝试PBRNRP做铺垫,毕竟了解写实向才能进一步学习奇奇怪怪的NPR方式!话不多说,从水墨渲染开始,正式进入风格化的世界!! 无论是什么场…...

【C++进阶】C++11(终)包装器、线程库
文章目录包装器使用方法bind线程线程函数参数原子性操作库(atomic)死锁问题法一:在异常处解锁法二:lock_guard法三:unique_lock两个线程交替打印奇偶数包装器 看下面代码: 通过运行结果我们可以看到static实例化出了三份&#…...

智能制造装备主要技术
请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!!INTRODUCTION制造业是国民经济和国防建设的重要基础,是立国之本、兴国之路、强国之基。智能制造是当前制造技术的核心发展方向。智能制造装备是智能制造…...

日语能力考常考形容词,柯桥考级培训
日语能力考常考形容词大全(汉字しい类)汉字しい类的形容词恥ずかしい(はずかしい):害羞,害臊;不好意思 例:こんな格好で人前に出るのは恥ずかしい。大人しい(おとなしい&…...

Qt 学习笔记 10.QTableWidget
1.如何彻底删除 QTableWidget 中的表项 在 Qt 中,可以使用 QTableWidget::removeRow() 函数彻底删除在 QTableWidget 中的行,从而删除该行中的所有表项。 QTableWidget::removeRow() 函数接受一个整数类型的行号作为参数,表示需要删除的行号。…...

【python】【protobuf】逆向还原protobuf结构
文章目录一、前言二、示例三、python demo一、前言 在很多场景,都有一个需求: 得到了一个编码后的protobuf数据(比如竞品调研的的数据包),需要逆向还原其proto结构文件。 有3种方案去做这件事情: 从编码入…...

基于CZT的辐射探测器市场调研报告-主要企业、市场规模、份额及发展趋势
基于CZT的辐射探测器市场报告主要研究:市场规模: 产能、产量、销售、产值、价格、成本、利润等行业分析:原材料、市场应用、产品种类、市场需求、市场供给,下游市场分析、供应链分析等竞争分析:主要企业情况、市场份额…...

lvgl小部件-基础对象学习篇(二)
lvgl小部件-基础对象学习篇(二) 学习材料/工具 QT Creator 5.12.3 lvgl 源代码 极客笔记 学习过程/内容 LVGL 基础对象-坐标 尺寸 位置 对齐 父子关系 屏幕 层次 事件处理 部件 状态 风格 属性 保护 组 扩展点击区域 事件 按键 范例 具有自定义样式的基础…...

放射图表征学习(Radiograph Representation Learning)部分论文汇总
本文不保证时效性覆盖性 ICLR [link] [code] [MRM] [23] Advancing Radiograph Representation Learning with Masked Record Modeling MICCAI [link] [code] [M3AE] [22] Multi-modal Masked Autoencoders for Medical Vision-and-Language Pre-training [link] [code] [LM…...

【测试开发实战】Docker+Jmeter+InfluxDB+Grafana 搭建性能监控平台
1. 为什么要搭建性能监控平台? 1.1 需求背景 在用 Jmeter 获取性能测试结果的时候, Jmeter 本身带有聚合报告如下图所示: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享;报告信息的展示比较简陋…...

【力扣专题】3.哈希表
3.哈希表理论知识数组代替哈希表setmap理论知识 一般哈希表都是用来快速判断一个元素是否出现集合里,要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1)就可以做到。 ● 哈希碰撞:映射到了同一个索引 ● 拉链法&…...

【MySQL】MySQL的介绍MySQL数据库及MySQL表的基本操作
文章目录数据库的介绍什么是数据库数据库分类MySQL的介绍数据库的基本操作数据库的操作创建数据库查看所有数据库选中指定的数据库删除数据库常用数据类型数值类型字符串类型日期类型表的操作创建表查看指定数据库下的所有表查看指定表的结构删除表小练习数据库的介绍 什么是数…...

JVM中引用计数法与可达性分析
目录 概要 如何判断对象已死? 引用计数算法 优点 缺点 举例说明 可达性分析 图例说明 GC Roots的对象包括以下几种 可达性分析回收过程 四大引用 回收方法区 方法区的垃圾收集主要回收两部分内容: 1. 废弃的常量 2. 不再使用的类型。 JVM是…...