《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_1

《剑指Offer》笔记&题解&思路&技巧&优化_Part_1

  • 😍😍😍 相知
  • 🙌🙌🙌 相识
  • 😢😢😢 开始刷题
    • 1. LCR 120. 寻找文件副本——数组中重复元素
    • 2. LCR 121. 寻找目标值 - 二维数组——二维数组中查找
    • 3. LCR 122. 路径加密——替换空格
    • 4. LCR 123. 图书整理 I——从尾到头打印链表
    • 5. LCR 124. 推理二叉树——重建二叉树
    • 6. LCR 125. 图书整理 II——用两个栈实现队列
    • 7. LCR 126. 斐波那契数——斐波那契数列
    • 8. LCR 127. 跳跃训练——青蛙跳台阶问题
    • 9. LCR 128. 库存管理 I——旋转数组的最小值

在这里插入图片描述

😍😍😍 相知

当你踏入计算机科学的大门,或许会感到一片新奇而陌生的领域,尤其是对于那些非科班出身的学子而言。作为一位非科班研二学生,我深知学习的道路可能会充满挑战,让我们愿意迎接这段充满可能性的旅程。

最近,我开始了学习《剑指Offer》和Java编程的探索之旅。这不仅是一次对计算机科学的深入了解,更是对自己学术生涯的一次扩展。或许,这一切刚刚开始,但我深信,通过努力与坚持,我能够逐渐驾驭这门技艺。

在这个博客中,我将深入剖析《剑指Offer》中的问题,并结合Java编程语言进行解析。

让我们一起踏上这段学习之旅,共同奋斗,共同成长。无论你是已经驾轻就熟的Java高手,还是像我一样初出茅庐的学子,我们都能在这里找到彼此的支持与激励。让我们携手前行,共同迎接知识的挑战,为自己的未来打下坚实的基石。

(得了!看吧!一起学习、一起努力!!!)

LeetCode估计版权原因,把剑指Offer系列题都下降了,估计大家根据题目是找不到了,但是LeetCode其实是换汤不换药,把剑指offer的题目和描述改了一下而已,其他的依然不变。按照我的标题继续冲!

🙌🙌🙌 相识

根据题型可将其分为这样几种类型:

  1. 结构概念类(数组,链表,栈,堆,队列,树)
  2. 搜索遍历类(深度优先搜索,广度优先搜索,二分遍历)
  3. 双指针定位类(快慢指针,指针碰撞,滑动窗口)
  4. 排序类(快速排序,归并排序)
  5. 数学推理类(动态规划,数学)

😢😢😢 开始刷题

1. LCR 120. 寻找文件副本——数组中重复元素

题目跳转:https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/description


  • 这道题在原书上绝对不是简单级别啊!
  • 它考察的是程序员的沟通能力,先问面试官要时间/空间需求!
    • 只是时间优先就用哈希表 时间: O ( n ) O(n) O(n) 空间 O ( n ) O(n) O(n)

      class Solution {public int findRepeatDocument(int[] documents) {// 定义数据结构Map<Integer,Integer> hashmap =  new HashMap<>();// 遍历for(int temp :documents){if(hashmap.containsKey(temp))return temp;     else hashmap.put(temp,1);}return 0;}
      }
      
    • 还有空间要求,就用指针+原地排序数组 时间: O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n)) 空间 O ( 1 ) O(1) O(1)

      class Solution {public int findRepeatDocument(int[] documents) {Arrays.sort(documents);for(int i = 0;i<documents.length-1;i++){if(documents[i]!=documents[i+1])continue;else return documents[i];}return 0;}
      }
      
    • 0 ≤ documents[i] ≤ n-1 由于!这个限制的存在,我们可以利用鸽巢原理,所以我们可以将见到的元素 放到索引的位置,如果交换时,发现索引处已存在该元素,则重复 O ( n ) O(n) O(n)空间 O ( 1 ) O(1) O(1)

      class Solution {public int findRepeatDocument(int[] documents) {for(int i = 0;i<documents.length;++i){while(documents[i]!=i){if(documents[i]==documents[documents[i]])return documents[i];int k = documents[documents[i]];documents[documents[i]] = documents[i];documents[i] = k;}}return 0;}
      }
      

学会这个思想了嘛??真的???ok!来个难的!
41.缺失的第一个正数 https://leetcode.cn/problems/first-missing-positive/description/

代码给你附上了!

class Solution {public int firstMissingPositive(int[] nums) {for(int i = 0;i < nums.length;i++){while (nums[i]>0&&nums[i]<=nums.length){if (nums[i] == nums[nums[i]-1]) break; // 已经在对应位置int temp = nums[nums[i]-1];nums[nums[i]-1] = nums[i];nums[i] = temp;}}for(int i = 0;i < nums.length;i++){if(i+1!=nums[i])return i+1;}return  nums.length+1;}
}

765.情侣牵手 https://leetcode.cn/problems/couples-holding-hands/description/

class Solution {public int minSwapsCouples(int[] row) {// /2 是n就是低n对(0开始)int result = 0;for(int i=1;i<row.length-1;i++){if(i%2 == 0)continue;if((row[i-1]/2)==(row[i]/2)) continue;for(int j = i+1;j<row.length;j++){if((row[i-1]/2)==(row[j]/2)){int k = row[j];row[j] = row[i];row[i] = k;result++;break;}}}return result;}
}

2. LCR 121. 寻找目标值 - 二维数组——二维数组中查找

题目跳转:https://leetcode.cn/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/description/

不废话
想到暴搜时间复杂度—— O ( n 2 ) O(n^2) O(n2)
暴搜这么优化啊!想到二分时间复杂度—— O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n))

class Solution {public boolean findTargetIn2DPlants(int[][] plants, int target) {//个人反应//暴力搜素//二分法if(plants.length==0||plants[0].length==0)return false;int m = plants.length;int n = plants[0].length; int left = 0;int right = 0; int mid = 0;for(int i = 0;i<m;i++){left = 0;right = n-1; while(left<=right){mid = (right-left)/2+left;if(plants[i][mid]==target)return true;if(plants[i][mid]<target)left = mid+1;else{right = mid-1;}}}return false;}
}

再优化一版本!
看图说话!
在这里插入图片描述

class Solution {public boolean findTargetIn2DPlants(int[][] plants, int target) {if(plants.length==0||plants[0].length==0)return false;int m = plants[0].length-1;int n = 0; while(m>=0&&m<plants[0].length&&n>=0&&n<plants.length){if(plants[n][m]<target) n++;else if(plants[n][m]>target) m--;else return true;}return false;}
}

3. LCR 122. 路径加密——替换空格

题目跳转:https://leetcode.cn/problems/ti-huan-kong-ge-lcof/description/
时间复杂度—— O ( n ) O(n) O(n),空间复杂度—— O ( n ) O(n) O(n)

class Solution {public String pathEncryption(String path) {return path.replace("."," ");}
}

但是!学一种数据结构!!

class Solution {public String pathEncryption(String path) {StringBuilder stringBuilder = new StringBuilder();for(int i =0;i<path.length();i++){stringBuilder.append(path.charAt(i)=='.'?' ':path.charAt(i));}return stringBuilder.toString();}
}

扩容!但是Java本身是不支持这样扩容的 但是模拟一下,加深印象!但是别学!
在这里插入图片描述

class Solution {public String pathEncryption(String path) {int count = 0;for(int i = 0;i<path.length();i++){if(path.charAt(i)=='.')count++;}char[] a = new char[path.length()+(1-1)*count];int temp = a.length-1;for(int i = path.length()-1;i >= 0;i--){if(path.charAt(i)!='.') a[temp--] = path.charAt(i);else{a[temp--] = ' ';}}return new String(a);}
}

4. LCR 123. 图书整理 I——从尾到头打印链表

题目跳转:https://leetcode.cn/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/description/

——时间复杂度—— O ( n ) O(n) O(n),空间复杂度—— O ( n ) O(n) O(n)

/*** 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 int[] reverseBookList(ListNode head) {if(head==null) return new int[0];Stack<Integer> stack = new Stack();int count = 0;while(head!=null){count++;stack.push(head.val);head = head.next;}int [] result = new int[count];int a = 0;while(!stack.isEmpty()){result[a++] = stack.peek();stack.pop();}return result;}
}

反转链表
反转链表的代码 然后直接顺序都即可
在这里插入图片描述

class Solution {public ListNode reverseList(ListNode head) {if (head==null||head.next==null) return head;ListNode result_zero = null;ListNode cur = head;while(cur!=null){ListNode head_temp = cur.next;cur.next = result_zero;result_zero= cur;cur = head_temp;}return result_zero;}}
  • 递归反转——时间复杂度—— O ( n ) O(n) O(n),空间复杂度—— O ( n ) O(n) O(n)
class Solution {public ListNode reverseList(ListNode head) {// head == null 防止参数Head本身就为null// haed.next == null,用来让递归停止到尾结点,就开始返回;if (head == null || head.next == null) return head;ListNode node = reverseList(head.next); // 保存尾结点;head.next.next = head; // 翻转指针;head.next = null; // 置空,递归已保存上一个结点,置空不影响连接return node; // 返回尾结点}
}
  • 原地反转——时间复杂度—— O ( n ) O(n) O(n),空间复杂度—— O ( 1 ) O(1) O(1)
    请添加图片描述
// 双指针
class Solution {public ListNode reverseList(ListNode head) {ListNode prev = null;ListNode cur = head;ListNode temp = null;while (cur != null) {temp = cur.next;// 保存下一个节点cur.next = prev;prev = cur;cur = temp;}return prev;}
}
// 递归 
class Solution {public ListNode reverseList(ListNode head) {return reverse(null, head);}private ListNode reverse(ListNode prev, ListNode cur) {if (cur == null) {return prev;}ListNode temp = null;temp = cur.next;// 先保存下一个节点cur.next = prev;// 反转// 更新prev、cur位置// prev = cur;// cur = temp;return reverse(cur, temp);}
}
// 从后向前递归
class Solution {ListNode reverseList(ListNode head) {// 边缘条件判断if(head == null) return null;if (head.next == null) return head;// 递归调用,翻转第二个节点开始往后的链表ListNode last = reverseList(head.next);// 翻转头节点与第二个节点的指向head.next.next = head;// 此时的 head 节点为尾节点,next 需要指向 NULLhead.next = null;return last;} 
}

倒推数组,反向填充——时间复杂度—— O ( n ) O(n) O(n),空间复杂度—— O ( 1 ) O(1) O(1)

class Solution {public int[] reverseBookList(ListNode head) {if(head==null) return new int[0];ListNode temp = head;int count = 0;while(temp!=null){count++;temp = temp.next;}int [] result = new int[count];for(int i = result.length-1;i>=0;i--){result[i]=head.val;head= head.next;}return result;}
}

5. LCR 124. 推理二叉树——重建二叉树

题目跳转:https://leetcode.cn/problems/zhong-jian-er-cha-shu-lcof/description/
知识点:

  • 前序遍历列表:第一个元素永远是根节点 (root)
  • 中序遍历列表:根节点 (root)左边的所有元素都在根节点的左分支右边的所有元素都在根节点的右分支

算法思路:

  • 通过【前序遍历列表】确定【根节点 (root)】
  • 将【中序遍历列表】的节点分割成【左分支节点】和【右分支节点】
  • 递归寻找【左分支节点】中的【根节点 (left child)】和 【右分支节点】中的【根节点 (right child)】
class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {//重建一开始是真的有点绕啊,但是其实理清了也还好,无非就是通过每次传进去的两个数组来构建新的二叉树//三部曲试一下吧//首先是啥时候结束//当传入的数组长度为0的时候就该结束了int length = preorder.length;if(length == 0 ) return null;//接下来是我们应该返回什么,那当然就是返回重建子树的根节点咯//每一层应该做些什么呢?//应该通过传进来的两个数组,根据他们之间的关系,来构建子树,并把新的参数传递下去//那么现在传进来了两个数组,一个是前序遍历的数组,那么首位必定是根节点,先拿下int rootValue = preorder[0];//有了数组的根节点以后我们自然需要的是左右子树,根据中序遍历的特点,只要找到了根节点,那么他两边自然//就是他的左右子树了//那么先在中序遍历的数组中找到根节点,并把它的坐标保存起来int rootIndex = 0;      for(int i = 0; i < length; i++){if(inorder[i] == rootValue){rootIndex = i;break;}}//至此我们已经找到了根和左右子树,那么设置一下根节点的左右节点,自然就是递归后返回的左右子树的根节点//先把我们的根节点创建出来TreeNode root = new TreeNode(rootValue);root.left = buildTree(Arrays.copyOfRange(preorder,1,rootIndex + 1),Arrays.copyOfRange(inorder,0,rootIndex));root.right = buildTree(Arrays.copyOfRange(preorder,1+rootIndex,length),Arrays.copyOfRange(inorder,rootIndex+1,length));//至于传入的数组如何分割可以自己通过测试用例来分析,这里不赘述了//至此节点创建,左右节点的设置均已完成,返回rootreturn root;}}  

学会这个函数嗷!以后不能忘啦Arrays.copyOfRange(arr,0,k)截取arr下标0k-1


6. LCR 125. 图书整理 II——用两个栈实现队列

题目跳转:https://blog.csdn.net/weixin_46225503/article/details/135412406
学会用栈

class CQueue {Stack<Integer> stack_one;Stack<Integer> stack_two;public CQueue() {stack_one  = new Stack<>();stack_two  = new Stack<>();}public void appendTail(int value) {stack_one.push(value);}public int deleteHead() {if(stack_one.isEmpty())return -1;while(!stack_one.isEmpty()){stack_two.push(stack_one.peek());stack_one.pop();}int value = stack_two.peek();stack_two.pop();while(!stack_two.isEmpty()){stack_one.push(stack_two.peek());stack_two.pop();}return value;}
}

学会用LinkedList!

class CQueue {LinkedList<Integer> stack1;LinkedList<Integer> stack2;public CQueue() {stack1 = new LinkedList<>();stack2 = new LinkedList<>();}public void appendTail(int value) {stack1.push(value);}public int deleteHead() {if (stack2.isEmpty()) {if (stack1.isEmpty()) return -1;while (!stack1.isEmpty()) {stack2.push(stack1.pop());}return stack2.pop();} else return stack2.pop();}
}
class CQueue {LinkedList<Integer> linkedList;public CQueue() {linkedList  = new LinkedList<>();}public void appendTail(int value) {linkedList.addLast(value);}public int deleteHead() {if(linkedList.isEmpty())return -1;return linkedList.removeFirst();}
}

学会队列!https://blog.csdn.net/weixin_46225503/article/details/135412739

class CQueue {Queue<Integer> queue;public CQueue() {queue  = new LinkedList<>();}  public void appendTail(int value) {queue.add(value);}public int deleteHead() {if(queue.isEmpty())return -1;return queue.poll();   }
}

7. LCR 126. 斐波那契数——斐波那契数列

题目跳转:https://leetcode.cn/problems/fei-bo-na-qi-shu-lie-lcof/description/
哈希表

class Solution {private Map<Integer,Integer> hashMap = new HashMap();private  final int mod = 1000000007;public int fib(int n) {hashMap.put(0,0);hashMap.put(1,1);if(hashMap.containsKey(n))return hashMap.get(n);else{int result = 0;result = (fib(n-1) + fib(n-2))%mod;hashMap.put(n,result);return result;}}
}

数组

class Solution {public int fib(int n) {if (n == 0 || n == 1)return n;int[] ans = new int[n+1];ans[0] = 0;ans[1] = 1;for(int i =2;i<=n;i++){ans[i] = (ans[i-1]+ans[i-2])%1000000007;}return ans[n];}
}

那为什么不递归呢?Good Question!
在这里插入图片描述


8. LCR 127. 跳跃训练——青蛙跳台阶问题

题目跳转:https://leetcode.cn/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/description/

与上一题相似

在这里插入图片描述

f ( n ) = f ( n − 1 ) + f ( n − 2 ) f(n)=f(n-1)+f(n-2) f(n)=f(n1)+f(n2)

f ( 0 ) = 1 , f ( 1 ) = 1 , f ( 2 ) = 2 f(0)=1, f(1)=1, f(2)=2 f(0)=1,f(1)=1,f(2)=2

class Solution {public int trainWays(int num) {if(num==0)return 1;if(num==1) return 1;if(num==2) return 2;int[] arr = new int[num+1];arr[0] = 0;arr[1] = 1;arr[2] = 2;for(int i = 3;i <= num;i++){arr[i] = (arr[i-1]+arr[i-2])%1000000007;}return arr[num];}
}

9. LCR 128. 库存管理 I——旋转数组的最小值

题目跳转:https://leetcode.cn/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/

排序

class Solution {public int stockManagement(int[] stock) {Arrays.sort(stock);return stock[0];}
}

如果你想到这个!你别逼我扇你!调用API 虽然顾得,但是还是要写点有实力的东西!
在这里插入图片描述

那好吧~ 换一个!
遍历

class Solution {public int stockManagement(int[] stock) {if(stock.length==1) return stock[0];if(stock.length==2) return Math.min(stock[0],stock[1]);int result = stock[0];for(int i = 1;i<stock.length;i++){if(result>stock[i])result = stock[i];}return result;}
}

没啥营养!
在这里插入图片描述
再换!

class Solution {public int stockManagement(int[] numbers) {int left = 0;int right = numbers.length - 1;if (numbers[left] < numbers[right]) {return numbers[left];}while (left < right) {int mid = (left + right) / 2;// 如果右边的比中间的大,那么说明右边的部分一定是有序的。if (numbers[right] > numbers[mid]) {right = mid;// 右边的小于中间的,说明左边的一定是有序的。} else if (numbers[right] < numbers[mid]) {left = mid + 1;// 如果相等,想要判断哪一边是有序的比较难,需要考虑很多临界条件。// 上次理解的难点正在这里,这次也在这里卡了思路。// 但换个思路就很好解决了。// 即:我不需要确认当前的状态,我只需要保证答案在我的区间内,并且逐渐压缩区间,直到出现变动即可。// 由于此时numbers[right] == numbers[mid],所以right --并不会影响答案依旧在left和right的区间内。} else {right --;}}return numbers[left];}
}

要学会二分法!!!!

在这里插入图片描述
简单来个测试 去写一个二分!
在这里插入图片描述

class Solution {public int searchInsert(int[] nums, int target) {int left = 0;int right = nums.length-1;int mid = 0; if(nums[left]>=target) return 0;if(nums[right]==target)return right;if(nums[right]<target) return right+1;while(left<right){mid = (right-left)/2+left;if(nums[mid]==target)return mid;else if(nums[mid]>target){right = mid;}else{left = mid+1;}}return left;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2777088.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Amazon Dynamo学习总结

目录 一、Amazon Dynamo的问世 二、Amazon Dynamo主要技术概要 三、数据划分算法 四、数据复制 五、版本控制 六、故障处理 七、成员和故障检测 一、Amazon Dynamo的问世 Amazon Dynamo是由亚马逊在2007年开发的一种高度可扩展和分布式的键值存储系统&#xff0c;旨在解…

Android13多媒体框架概览

Android13多媒体框架概览 Android 多媒体框架 Android 多媒体框架旨在为 Java 服务提供可靠的接口。它是一个系统&#xff0c;包括多媒体应用程序、框架、OpenCore 引擎、音频/视频/输入的硬件设备&#xff0c;输出设备以及一些核心动态库&#xff0c;比如 libmedia、libmedi…

ARM PAC/BTI/MTE三剑客精讲与实战

一、PAC指针认证精讲与实战 思考 1、什么是栈溢出攻击&#xff1f;什么是代码重用攻击&#xff1f;区别与联系&#xff1f; 2、栈溢出攻击的软&硬件缓解技术有哪些&#xff1f;在TF-A&OPTEE上的应用&#xff1f; 3、什么是ROP攻击&#xff1f;对ROP攻击的缓解技术&…

Redis -- 数据库管理

目录 前言 切换数据库(select) 数据库中key的数量&#xff08;dbsize&#xff09; 清除数据库&#xff08;flushall flushdb&#xff09; 前言 MySQL有一个很重要的概念&#xff0c;那就是数据库database&#xff0c;一个MySQL里面有很多个database&#xff0c;一个datab…

龙芯开启ssh服务——使用Putty连接

本文采用龙芯3A6000处理器&#xff0c;Loongnix操作系统。 为了能使用其他电脑远程操控龙芯电脑&#xff0c;需要打开loongnix的ssh服务&#xff0c;并在其他电脑里使用putty连接loongnix。 1 修改ssh配置文件 命令行输入&#xff1a; sudo vim /etc/ssh/sshd_config按下i插…

【初中生讲机器学习】6. 分类算法中常用的模型评价指标有哪些?here!

创建时间&#xff1a;2024-02-07 最后编辑时间&#xff1a;2024-02-09 作者&#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏&#xff0c;很高兴遇见你~ 我是 Geeker_LStar&#xff0c;一名初三学生&#xff0c;热爱计算机和数学&#xff0c;我们一起加…

HACKTHEBOX通关笔记——mango(退役)

信息收集 端口扫描 ┌──(root㉿kali)-[~] └─# nmap -sC -sV -A -p- --min-rate10000 10.129.229.185 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-01-31 20:44 EST Warning: 10.129.229.185 giving up on port because retransmission cap hit (10). Nmap scan …

方案分享:F5怎么样应对混合云网络安全?

伴随着云计算走入落地阶段&#xff0c;企业的云上业务规模增长迅猛。具有部署灵活、成本低、最大化整合现有资产、促进业务创新等优点的混合云逐渐成为企业选择的部署方式。与此同时&#xff0c;安全运营的复杂度进一步提高。比如安全堆栈越来越复杂、多云基础设施和应用添加网…

攻防世界——re2-cpp-is-awesome

64位 我先用虚拟机跑了一下这个程序&#xff0c;结果输出一串字符串flag ——没用 IDA打开后 F5也没有什么可看的 那我们就F12查看字符串找可疑信息 这里一下就看见了 __int64 __fastcall main(int a1, char **a2, char **a3) {char *v3; // rbx__int64 v4; // rax__int64 v…

【机房预约系统(C++版)】

一、机房预约系统需求 1.1、系统简介 学校现有几个规格不同的机房&#xff0c;由于使用时经常出现“撞车“现象,现开发一套机房预约系统&#xff0c;解决这一问题。 1.2、身份简介 分别有三种身份使用该程序学生代表:申请使用机房教师:审核学生的预约申请管理员:给学生、教…

Git分支常用指令

目录 1 git branch 2 git branch xx 3 git checkout xx 4 git checkout -b xx 5 git branch -d xx 6 git branch -D xx 7 git merge xx(含快进模式和冲突解决的讲解) 注意git-log: 1 git branch 作用&#xff1a;查看分支 示例&#xff1a; 2 git branch xx 作用&a…

第二节课[Demo]作业

基础作业 使用 InternLM-Chat-7B 模型生成 300 字的小故事 user avatar 你是一个精通isekai的勇者&#xff0c;现在需要你讲述一段清新脱俗的异世界日常故事&#xff0c;字数300字以上robot avatar 在一个普通的早晨&#xff0c;我像往常一样起床、洗漱、吃早餐。但是&#xf…

第二十六回 母夜叉孟州道卖人肉 武都头十字坡遇张青-Ubuntu 防火墙ufw配置

武松到县里投案&#xff0c;县官看武松是个汉子&#xff0c;就把诉状改成&#xff1a;武松与嫂一时斗殴杀死&#xff0c;后西门庆前来&#xff0c;两人互殴&#xff0c;打死西门庆。上报东平府。东平府尹也可怜武松&#xff0c;从轻发落&#xff0c;最后判了个&#xff1a;脊杖…

【超高效!保护隐私的新方法】针对图像到图像(l2l)生成模型遗忘学习:超高效且不需要重新训练就能从生成模型中移除特定数据

针对图像到图像生成模型遗忘学习&#xff1a;超高效且不需要重新训练就能从生成模型中移除特定数据 提出背景如何在不重训练模型的情况下从I2I生成模型中移除特定数据&#xff1f; 超高效的机器遗忘方法子问题1: 如何在图像到图像&#xff08;I2I&#xff09;生成模型中进行高效…

Jupyter Notebook如何在E盘打开

Jupyter Notebook如何在E盘打开 方法1&#xff1a;方法2&#xff1a; 首先打开Anaconda Powershell Prompt, 可以看到默认是C盘。 可以对应着自己的界面输入&#xff1a; 方法1&#xff1a; (base) PS C:\Users\bella> E: (base) PS E:\> jupyter notebook方法2&#x…

图像批量重命名(基于Python,本地运行)

图像批量重命名(基于Python&#xff0c;本地运行) &#x1f335;文章目录&#x1f335; &#x1f333;引言&#x1f333;&#x1f333;场景假设&#x1f333;&#x1f333;知识储备&#x1f333;os.path.splitext方法语法示例 os.listdir方法语法示例 &#x1f333;解决方案&am…

OpenCV 笔记(21):图像色彩空间

1. 图像色彩空间 图像色彩空间是用于定义颜色范围的数学模型。 它规定了图像中可以使用的颜色以及它们之间的关系。它决定了图像中可以显示的颜色范围。不同的色彩空间可以包含不同的颜色范围&#xff0c;因此选择合适的色彩空间对于确保图像在不同设备上看起来一致非常重要。…

查看系统进程信息的Tasklist命令

Tasklist命令是一个用来显示运行在本地计算机上所有进程的命令行工具&#xff0c;带有多个执行参数。另外&#xff0c;Tasklist可以代替Tlist工具。通过任务管理器&#xff0c;可以查看到本机完整的进程列表&#xff0c;而且可以通过手工定制进程列表方式获得更多进程信息&…

vue3 之 商城项目—登陆

整体认识 登陆页面的主要功能就是表单校验和登陆登出业务 路由配置 模版 <script setup></script><template><div><header class"login-header"><div class"container m-top-20"><h1 class"logo"&g…

Redis -- 安装客户端redis-plus-plus

目录 访问reids客户端github链接 安装git 如何安装&#xff1f; 下载/编译、安装客户端 安装过程中可能遇到的问题 访问reids客户端github链接 GitHub - sewenew/redis-plus-plus: Redis client written in CRedis client written in C. Contribute to sewenew/redis-p…