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

<2.20>Leetcode哈希、双指针

还可以用双指针的做法 我们要找等于9 排序后从两边开始左右指针 2 3 7 9 如果2+9>9那么9肯定不能要 去掉

左边也一样   2  3 5 6   2+6小于9 那么2肯定不能要 去掉

package Leetcode;
import java.util.*;public class 两数之和 {public int[] twoSum(int[] nums,int target) {暴力 时间复杂度O(n^2)for(int i = 0; i < nums.length;i++) {for (int j = i+1;j<nums.length;j++) {if (nums[i] + nums[j] == target) {return new int[] {i,j};}}}return null;}
}
package Leetcode;
import java.io.*;
import java.util.*;
/*输入
2 7 11 15
9
*/
public class 两数之和_ {public static void main(String[] args) throws IOException {// 创建BufferedReader用于从System.in读取输入BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));// 创建PrintWriter用于向System.out输出PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));// 读取一行,并使用split分割成字符串数组String[] s = bf.readLine().split(" ");// 创建一个整型数组来存储输入的整数int[] nums = new int[s.length];// 将字符串数组转换为整型数组for (int i = 0; i < nums.length; i++)nums[i] = Integer.parseInt(s[i]);int target = Integer.parseInt(bf.readLine());//暴力 时间复杂度O(n^2)for(int i = 0; i < nums.length;i++) {for (int j = i+1;j<nums.length;j++) {if (nums[i] + nums[j] == target) {pw.printf("[%d,%d]", i,j);bf.close();pw.close();return ;}}}bf.close();pw.close();}
}
package Leetcode;
import java.util.*;public class 两数之和 {public int[] twoSum(int[] nums,int target) {//哈希表 时间复杂度O(n)Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();for (int i = 0; i < nums.length; ++i) {if (hashtable.containsKey(target - nums[i])) {return new int[]{hashtable.get(target - nums[i]), i};}hashtable.put(nums[i], i);}return null;}
}
import java.io.*;
import java.util.*;
/*输入
2 7 11 15
9
*/
public class 两数之和_ {public static void main(String[] args) throws IOException {// 创建BufferedReader用于从System.in读取输入BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));// 创建PrintWriter用于向System.out输出PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));// 读取一行,并使用split分割成字符串数组String[] s = bf.readLine().split(" ");// 创建一个整型数组来存储输入的整数int[] nums = new int[s.length];// 将字符串数组转换为整型数组for (int i = 0; i < nums.length; i++)nums[i] = Integer.parseInt(s[i]);int target = Integer.parseInt(bf.readLine());//哈希表 时间复杂度O(n)Map<Integer,Integer> hashTable = new HashMap<Integer,Integer>();for(int i= 0;i<nums.length;i++) {if(hashTable.containsKey(target - nums[i])) {pw.printf("[%d,%d]",hashTable.get(target-nums[i]),i);bf.close();pw.close();return ;}hashTable.put(nums[i],i);}bf.close();pw.close();}
}

 1.排序

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>> map = new HashMap<String,List<String>>();for(String str : strs) {char[] array = str.toCharArray();//每个单词转化成一个chara数组Arrays.sort(array);//对这个char[]进行排序 array改变了 但是str还是原样String sortedWord = new String(array);//char数组转化成一个String类型map.computeIfAbsent(sortedWord, k -> new ArrayList<>()).add(str);//检查这个map里面是否有一个键是sortedWord 如果有就不创建键了 如果没有就创建一个这个键  最后将这个字符加在这个键下面}return new ArrayList<>(map.values());}
}
class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<String, List<String>>();for (String str : strs) {char[] array = str.toCharArray();Arrays.sort(array);String key = new String(array);List<String> list = map.getOrDefault(key, new ArrayList<String>());list.add(str);map.put(key, list);}return new ArrayList<List<String>>(map.values());}
}
//List<String> list = map.getOrDefault(key, new ArrayList<String>());允许你获取指定键的值,如果这个键不存在,则返回一个默认值。但是,使用 getOrDefault 方法时需要注意,因为它返回的是默认值的一个副本,而不是实际存储在映射中的值。这意味着如果你修改了返回的列表,原始映射中的值不会被改变,除非你将修改后的列表再次放入映射中。

//时间复杂度:O(nklogk),其中n是strs中的字符串的数量,k是strs中的字符串的的最大长度。需要遍历n个字符串,对于每个字符串,需要O(klogk)的时间进行排序以及O(1)的时间更新哈希表,因此总时间复杂度是O(nklogk)import java.util.*;
import java.io.*;
import static java.lang.Math.*;
/*
eat tea tan ate nat bat*/
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));String[] s = br.readLine().split(" ");List<String> l_s = Arrays.asList(s);Map<String,List<String>> map = new HashMap<String,List<String>>();for(String str : l_s) {char[] array = str.toCharArray();//每个单词转化成一个chara数组Arrays.sort(array);//对这个char[]进行排序 array改变了 但是str还是原样String sortedWord = new String(array);//char数组转化成一个String类型map.computeIfAbsent(sortedWord, k -> new ArrayList<>()).add(str);//检查这个map里面是否有一个键是sortedWord 如果有就不创建键了 如果没有就创建一个这个键  最后将这个字符加在这个键下面}pw.println(new ArrayList<>(map.values()));br.close();pw.close();}
}

import java.util.*;
import java.io.*;
import static java.lang.Math.*;
/*
eat tea tan ate nat bat*/
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));String[] strs = br.readLine().split(" ");//字符串数组 里面每一个元素都是一个单词List<String>  l_s= Arrays.asList(strs);//一个List 里面每一个元素都是一个单词 将String[]转化成ListMap<String,List<String>> map = new HashMap<String,List<String>>();for(String str:strs){int[] counts = new int[26];//对于每一个单词计数int length = str.length();for(int i=0;i<length;i++){counts[str.charAt(i)-'a']++;//每个字符出现的次数++}//将每一个出现 次数大于0的字母和出现次数 按顺序拼接成字符串作为哈希表的键StringBuffer sb = new StringBuffer();//格式a2b3...for(int i=0;i<26;i++){if(counts[i]>0){sb.append((char)(i+'a'));sb.append(counts[i]);}}String key = sb.toString();List<String> list = map.getOrDefault(key,new ArrayList<String>());//如果什么都没有就返回一个ArrayListlist.add(str);//但是这个list不会更新位map的值 因为是副本map.put(key,list);//更细map}pw.println(new ArrayList<>(map.values()));br.close();pw.close();}
}

//排序时间复杂为nlogn
class Solution {public int longestConsecutive(int[] nums) {if(nums.length == 0) return 0;Arrays.sort(nums);//res表示=最长的长度(结果) len表示目前的长度 last表示在这个序列中上一个数字是int res = 1,c_len = 1,last = nums[0];for(int i = 1; i < nums.length; i++) {if (nums[i] == last) continue;else if (nums[i] == (1+last)){last = nums[i];c_len ++;}else{res = Math.max(res,c_len);//连不上了记录一下长度就行c_len = 1;last = nums[i];}}res = Math.max(res, c_len); // 临界条件 最后一段 要和现在比一下return res;}
}

import java.util.*;
import java.io.*;
import static java.lang.Math.*;
/*
100 4 200 1 3 2*/
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] nums = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {nums[i] = Integer.parseInt(nums_s[i]);}
//        if(nums.length == 0) return 0;Arrays.sort(nums);//res表示=最长的长度(结果) len表示目前的长度 last表示在这个序列中上一个数字是int res = 1,c_len = 1,last = nums[0];for(int i = 1; i < nums.length; i++) {if (nums[i] == last) continue;else if (nums[i] == (1+last)){last = nums[i];c_len ++;}else{res = Math.max(res,c_len);//连不上了记录一下长度就行c_len = 1;last = nums[i];}}res = Math.max(res, c_len); // 临界条件 最后一段 要和现在比一下pw.println(res);br.close();pw.close();
//        return res;}
}
public int longestConsecutive(int[] nums) {if (nums.length == 0) return 0;int n = nums.length, max = 1;Set<Integer> set = new HashSet<>();for (int v : nums) set.add(v);for (int v : nums) {// 技巧:如果有比自己小一点的,那自己不查,让小的去查if (set.contains(v - 1)) continue;int r = v; // r: right 表示「以 v 开头,能连续到多少」while (set.contains(r + 1)) r++; // 逐个查看max = Math.max(max, r - v + 1); // 记录区间 [v, r] 长度}return max;
}

class Solution {public int longestConsecutive(int[] nums) {int ans = 0;Set<Integer> st = new HashSet<>();for (int num : nums) {st.add(num); // 把 nums 转成哈希集合}for (int x : st) { // 遍历哈希集合if (st.contains(x - 1)) {//x不是起点continue;}// x 是序列的起点int y = x + 1;while (st.contains(y)) { // 不断查找下一个数是否在哈希集合中y++;}// 循环结束后,y-1 是最后一个在哈希集合中的数ans = Math.max(ans, y - x); // 从 x 到 y-1 一共 y-x 个数}return ans;}
}

 


import java.util.*;
import java.io.*;
import static java.lang.Math.*;
/*
100 4 200 1 3 2*/
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] nums = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {nums[i] = Integer.parseInt(nums_s[i]);}int l = 0, r = 1;for (;r<nums.length;r++) {if(nums[l] == 0 && nums[r] != 0){//交换两个数字int temp = nums[l];nums[l] = nums[r];nums[r] = temp;l++;//r会自动++}else if(nums[l] == 0 && nums[r] == 0)continue;else l++;}
//        pw.print(nums);//数组的话打印出来的是地址pw.println(Arrays.toString(nums));br.close();pw.close();}
}

这两种双指针的起点不一样

class Solution {public void moveZeroes(int[] nums) {int l = 0, r = 1;for (;r<nums.length;r++) {if(nums[l] == 0 && nums[r] != 0){//交换两个数字int temp = nums[l];nums[l] = nums[r];nums[r] = temp;l++;//r会自动++}else if(nums[l] == 0 && nums[r] == 0)continue;else l++;}}
}
impl Solution {pub fn move_zeroes(nums: &mut Vec<i32>) {let mut i0 = 0;for i in 0..nums.len() {if nums[i] != 0 {nums.swap(i, i0);i0 += 1;}}}
}

利用双指针的方法 面积与长度和较小的那个高度有关系  左指针向右移动 右指针向左移动

只考虑较小高度变大的情况 因为长度减小的同时 如果想让面积变大 只能让高度变高

public class Solution {public int maxArea(int[] height) {int l = 0, r = height.length - 1;int ans = 0;while (l < r) {int area = Math.min(height[l], height[r]) * (r - l);ans = Math.max(ans, area);if (height[l] <= height[r]) {++l;}else {--r;}}return ans;}
}


import java.util.*;
import java.io.*;
import static java.lang.Math.*;
/*
100 4 200 1 3 2*/
public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] height = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {height[i] = Integer.parseInt(nums_s[i]);}int l = 0, r = height.length - 1;int ans = 0;while (l < r) {int area = Math.min(height[l], height[r]) * (r - l);ans = Math.max(ans, area);if (height[l] <= height[r]) {//较小的边走++l;}else {--r;}}
//        return ans;pw.println(ans);br.close();pw.close();}
}

想想这个写法为什么错了? 

class Solution {

    public int maxArea(int[] height) {

        int l = 0, r = height.length - 1;

        int min_hei = Integer.MAX_VALUE;

        int ans = 0;

        while (l < r) {

            min_hei = Math.min(height[l], height[r]);

            int len = r - l ;

            ans = Math.max(ans, len * min_hei);

            int deltal = (l + 1 < height.length) ? height[l + 1] - height[l] : 0;

            int deltar = (r - 1 >= 0) ? height[r - 1] - height[r] : 0;

            if (deltar <= 0 && deltal <= 0) {

                break; // 如果两边的高度差都不大于0,则无法扩展窗口

            }

            if (deltar > deltal) {

                r--;

            } else {

                l++;

            }

        }

        return ans;

    }

}

因为不能看哪个增加的多就去动哪个 这样没有遍历全部情况 更不能因为不增加了就不往后查了

这样的话如果来一个突变 那么就又有可能变得更大

class Solution {public List<List<Integer>> threeSum(int[] nums) {Arrays.sort(nums);//排序List<List<Integer>> ans = new ArrayList<List<Integer>>();//枚举nfor(int i = 0; i < nums.length; i++){//去重 如歌和上一次的数字一样 那我们就去下一个if(i>0 && nums[i] == nums[i-1]){//注意这里只能这样写 不能在上面i=1 否则会漏掉continue;}int target = -nums[i];//双指针//右端点int k = nums.length-1;//枚举j 左端点for(int j = i+1; j < k; j++){//需要与上一次枚举的数不同if(j>i+1 && nums[j] == nums[j-1]){continue;}while(j<k&&(nums[j]+nums[k]>target)){k--;}if(j==k)break;//说明没有这样的组合if(nums[j]+nums[k]==target){List<Integer> list = new ArrayList<Integer>();list.add(nums[i]);list.add(nums[j]);list.add(nums[k]);ans.add(list);}}}return ans;}
}

import java.util.*;
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] nums = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {nums[i] = Integer.parseInt(nums_s[i]);}Arrays.sort(nums);//排序List<List<Integer>> ans = new ArrayList<List<Integer>>();//枚举nfor(int i = 0; i < nums.length; i++){//去重 如歌和上一次的数字一样 那我们就去下一个if(i>0 && nums[i] == nums[i-1]){//注意这里只能这样写 不能在上面i=1 否则会漏掉continue;}int target = -nums[i];//双指针//右端点int k = nums.length-1;//枚举j 左端点for(int j = i+1; j < k; j++){//需要与上一次枚举的数不同if(j>i+1 && nums[j] == nums[j-1]){continue;}while(j<k&&(nums[j]+nums[k]>target)){k--;}if(j==k)break;//说明没有这样的组合if(nums[j]+nums[k]==target){List<Integer> list = new ArrayList<Integer>();list.add(nums[i]);list.add(nums[j]);list.add(nums[k]);ans.add(list);}}}pw.println(ans);br.close();pw.close();}
}

import java.util.*;
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] height = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {height[i] = Integer.parseInt(nums_s[i]);}int ans = 0;int len = height.length;if(len<3)pw.println("0");int[] left_max_arr = new int[len];int[] right_max_arr = new int[len];left_max_arr[0] = height[0];right_max_arr[len-1] = height[len-1];for(int i=1;i<len;i++){left_max_arr[i] = Math.max(left_max_arr[i-1],height[i]);}for(int i=len-2;i>=0;i--){right_max_arr[i] = Math.max(right_max_arr[i+1],height[i]);}for(int i=0;i<len;i++){ans += Math.min(left_max_arr[i],right_max_arr[i]) - height[i];}pw.println(ans);br.close();pw.close();}
}

import java.util.*;
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] height = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {height[i] = Integer.parseInt(nums_s[i]);}//找到一根比前面柱子高的柱子才可以积水Stack<Integer> st = new Stack<Integer>();int i = 0,ans = 0;while(i<height.length){while(!st.isEmpty() && height[i] > height[st.peek()]){//栈不为空 且现在这个柱子高于上一个柱子的高度int top = st.pop();if(st.empty())break;int dis = i - st.peek() + 1 - 2;//想一下int bounded_height = Math.min(height[i],height[st.peek()])-height[top];//这个水坑的两侧高度的最小值减去这个坑的石块ans += bounded_height * dis;}st.push(i++);}pw.println(ans);
//        return ans;br.close();pw.close();}
}

import java.util.*;
import java.io.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));String[] nums_s = br.readLine().split(",");int[] height = new int[nums_s.length];for (int i = 0; i < nums_s.length; i++) {height[i] = Integer.parseInt(nums_s[i]);}//双指针int l = 0 ,r = height.length-1;int l_mx = 0,r_mx = 0,ans = 0;while(l<r){if(height[l]<height[r]){//说明右可以给左兜底 左指针可以放心大胆的走if(height[l] > l_mx)l_mx = height[l];else ans += l_mx-height[l];l ++ ;}else{//说明左可以给右兜底 //右指针可以放心大胆的走if(height[r] > r_mx)r_mx = height[r];else ans += r_mx-height[r];r -- ;}}return ans;
//        pw.println(ans);br.close();pw.close();}
}

相关文章:

<2.20>Leetcode哈希、双指针

还可以用双指针的做法 我们要找等于9 排序后从两边开始左右指针 2 3 7 9 如果29>9那么9肯定不能要 去掉 左边也一样 2 3 5 6 26小于9 那么2肯定不能要 去掉 package Leetcode; import java.util.*;public class 两数之和 {public int[] twoSum(int[] nums,int target…...

本2硕9电子科学专业,想走linux或是嵌入式,要具体学哪些技术

​今天给大家分享的是一位粉丝的提问&#xff0c;本2硕9电子科学专业&#xff0c;想走linux或是嵌入式&#xff0c;要具体学哪些技术 接下来把粉丝的具体提问和我的回复分享给大家&#xff0c;希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问&#xff1a; 你好&…...

《鸿蒙开发-答案之书》获取视频第一帧和视频时间

《鸿蒙开发-答案之书》获取视频第一帧和视频时间 /*** 获取视频信息**let result await MySightUtil.getSightInfo(this.sightUri);*let base64 : string result[0];*let duration : number result[1]** param uri 视频地址* returns 第一个数据是缩略图 base64 字符串&…...

计算机科学与技术

计算机科学是一个庞大且关联性强的学科体系&#xff0c;初学者常面临以下痛点&#xff1a; - **知识点零散**&#xff1a;容易陷入"只见树木不见森林"的学习困境 - **方向不明确**&#xff1a;面对海量技术栈不知从何入手 - **体系缺失**&#xff1a;难以建立完整…...

vxe-table 如何实现跟 Excel 一样的数值或金额的负数自动显示红色字体

vxe-table 如何实现跟 Excel 一样的数值或金额的负数自动显示红色字体&#xff0c;当输入的值为负数时&#xff0c;会自动显示红色字体&#xff0c;对于数值或者金额输入时该功能就非常有用了。 查看官网&#xff1a;https://vxetable.cn gitbub&#xff1a;https://github.co…...

【Word转PDF】在线Doc/Docx转换为PDF格式 免费在线转换 功能强大好用

在日常办公和学习中&#xff0c;将Word文档转换为PDF格式的需求非常普遍。无论是制作简历、撰写报告还是分享文件&#xff0c;都需要确保文档格式在不同设备上保持一致。而小白工具的“Word转PDF”功能正是为此需求量身打造的一款高效解决方案。 【Word转PDF】在线Doc/Docx转换…...

AF3 _find_template_in_pdb 函数解读

AlphaFold3 中templates模块的_find_template_in_pdb函数用于在 mmCIF 文件中查找与给定模板序列匹配的链,通过三步匹配策略确保找到最佳的模板链。 源代码: def _find_template_in_pdb(template_chain_id: str,template_sequence: str,mmcif_object: mmcif_parsing.MmcifO…...

陶瓷膜分离技术保障食品工业原料用水‌安全

陶瓷膜分离技术在食品工业中应用广泛&#xff0c;尤其是在保障原料用水的安全性方面发挥着重要作用。下面将从几个方面介绍陶瓷膜分离技术如何保障食品工业原料用水的安全&#xff1a; 高效过滤杂质&#xff1a;陶瓷膜具有非常细小的孔径(通常在纳米级别)&#xff0c;能够有效去…...

蓝桥杯 2.基础算法

蓝桥杯 2.基础算法 文章目录 蓝桥杯 2.基础算法基础算法时空复杂度枚举模拟编程11-16递归编程17进制转换编程18-19前缀和编程20-22差分编程23-27离散化贪心编程28-37二分双指针编程38-45构造编程46-49位运算编程50-55 排序冒泡排序选择排序插入排序快速排序归并排序编程56-65 基…...

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(2)

接前一篇文章:ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1) 二、问题求解 上一回说明了本系列文章的背景、所遇问题,以及乐鑫官方给出的解决方案,见以下测试用例: TEST_CASE("Camera driver uses an i2c port initialized by other devices test", &qu…...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_os_specific_init函数

ngx_os_specific_init 声明在 src/os/unix/ngx_os.h ngx_int_t ngx_os_specific_init(ngx_log_t *log); 定义在 src\os\unix\ngx_linux_init.c ngx_int_t ngx_os_specific_init(ngx_log_t *log) {struct utsname u;if (uname(&u) -1) {ngx_log_error(NGX_LOG_ALERT, log,…...

Go 自动升级依赖版本

&#x1f680; Go 自动升级依赖版本 在 Go 语言项目中&#xff0c;依赖管理使用 Go Modules&#xff08;go.mod 和 go.sum&#xff09;。如果想要自动升级依赖&#xff0c;可以使用以下方法。 1. 方式 1&#xff1a;升级所有依赖 go get -u ./...&#x1f539; 作用&#xff…...

fps僵尸:12.丧尸伤害检测

文章目录 设计丧尸攻击时启用伤害检测&#xff0c;攻击结束后取消伤害检测 思路需要在攻击动画中 调用&关闭伤害检测 实现注解动画通知&#xff1a;绑定动画与蓝图 设计 丧尸攻击时启用伤害检测&#xff0c;攻击结束后取消伤害检测 思路 需要在攻击动画中 调用&关闭…...

支持向量机(SVM)在 NLP 中的使用场景

支持向量机(Support Vector Machine, SVM)是一种强大的监督学习算法,广泛应用于分类任务中。由于其出色的分类性能和高效的计算特点,SVM 已经成为自然语言处理(NLP)领域中的一种经典模型。SVM 在 NLP 中的应用非常广泛,尤其在文本分类任务中,表现出色。 本文将探讨 SV…...

Linux中的Ctrl+C与Ctrl+Z

CtrlC与CtrlZ的区别 在Linux中&#xff0c;当我们在执行一个命令运行代码时&#xff0c;由于运行时间过长或中途出现报错&#xff0c;此时&#xff0c;我们可能需要终止该操作&#xff0c;这时候&#xff0c;该使用CtrlC还是CtrlZ呢&#xff1f; 1、CtrlC CtrlC&#xff1a;终…...

【深度学习】手写数字识别任务

数字识别是计算机从纸质文档、照片或其他来源接收、理解并识别可读的数字的能力&#xff0c;目前比较受关注的是手写数字识别。手写数字识别是一个典型的图像分类问题&#xff0c;已经被广泛应用于汇款单号识别、手写邮政编码识别等领域&#xff0c;大大缩短了业务处理时间&…...

go语言 创建kratos框架工程

go语言 创建kratos框架工程 1、准备 1.1、系统 只支持macos和linux系统&#xff0c; 这里主要是macos&#xff08;linux类似&#xff09; 1.2、需要的环境 1.2.1、go语言环境 $ brew install go # 会安装最新的go版本 $ go env -w GO111MODULEon # 设置go的环境1.2.2、 …...

Linux-GlusterFS操作子卷

文章目录 分布式卷添加卷分布式卷删除子卷删除总卷 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Linux专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年02月20日19点30分 分布式卷添加卷 Node1上进行操作 扩容 #服务器端 gluster volu…...

修改阿里云服务器内网ip

运维同事问能不能改我自己的服务内网ip&#xff0c; 买了一台服99元服务器&#xff0c;以为不能结果&#xff0c;结果还真改成功了&#xff0c; 分享一下经验。 首先最后关闭服务器-关机&#xff0c;必须要关闭服务 访问vpc控制台&#xff0c;就是要新建立一个网络 https://…...

鸿蒙与跨端迁移的重要性

鸿蒙操作系统&#xff08;HarmonyOS&#xff09;是由华为公司开发的一款面向未来的全场景分布式操作系统。它旨在提供一个统一的平台&#xff0c;支持各种设备之间的无缝协作和数据共享&#xff0c;从而为用户提供更加连贯和高效的体验。在鸿蒙的生态系统中&#xff0c;跨端迁移…...

XML XML约束 二、DTD

1 什么是DTD DTD&#xff08;Document Type Definition&#xff09;&#xff0c;文档类型定义&#xff0c;用来约束XML文档。例如要求xml文档的根元素必须是<students>&#xff0c;在<students>元素下可以包含0~n个<student>元素&#xff0c;每个<studen…...

用DeepSeek零基础预测《哪吒之魔童闹海》票房——从数据爬取到模型实战

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 **一、为什么要预测票房&#xff1f;****二、准备工作****三、实战步骤详解****Step 1&#xff1a;数据爬取与清洗&am…...

医院管理系统方案-基于蓝牙室内定位技术的院内智能导航系统:技术详解、功能设计及核心优势

文面向IT技术员、医院信息化负责人及物联网应用开发者&#xff0c;本文介绍了一款基于蓝牙室内定位技术的智能导航系统。该系统通过高精度定位与智能路径规划&#xff0c;极大提升了患者就医体验与医院运营效率。 如需获取院内智能导航系统技术文档可前往文章最下方获取&#x…...

ref() 和 reactive()响应性 浅解

文章目录 1. ref() 和 reactive() 的区别2. 解构 详解2.1. 什么是解构2.2. 解构避免丢失响应性的办法2.2.1. 解决方案&#xff1a;toRefs() 保持响应性2.2.2. 解决方案&#xff1a; toRef()保持响应性 3. 最佳实践 在 Vue 3 中&#xff0c;ref() 和 reactive() 都是用于响应式数…...

聊一聊vue如何实现角色权限的控制的

大家好&#xff0c;我是G探险者。 关于角色与权限控制&#xff0c;通常是分为两大类&#xff1a;一种是菜单权限&#xff1b;一种是操作权限。 菜单权限是指&#xff0c;每个角色对应着可以看到哪些菜单&#xff0c;至于每个菜单里面的每个按钮&#xff0c;比如增删改查等等这类…...

TensorFlow深度学习实战——构建卷积神经网络实现CIFAR-10图像分类

TensorFlow深度学习实战——构建卷积神经网络实现CIFAR-10图像分类 0. 前言1. CIFAR-10 数据集介绍2. CIFAR-10 图像分类3. 提升模型性能3.1 增加网络深度3.2 数据增强 4. 模型测试相关链接 0. 前言 我们已经学习了卷积神经网络 (Convolutional Neural Network, CNN) 的基本概…...

服务器创建conda环境并安装使用jupyter

1.创建conda环境 conda create --name myenv python3.8 conda activate myenv其中 myenv 是您想要创建的环境名称&#xff0c;可以根据需要替换为其他名称。2.安装juypter conda install jupyter3.启动juypter jupyter notebook复制链接到浏览器打开 4.设置jupyter使用的 …...

形参和实参

形参&#xff08;形式参数&#xff09; 函数定义时指定的参数&#xff0c;形参是用来接收数据的&#xff0c;函数定义时&#xff0c;系统不会为形参申请内存&#xff0c;只有当 函数调用时&#xff0c;系统才会为形参申请内存。主要用于存储实际参数&#xff0c;并且当函数返…...

【HarmonyOS Next】鸿蒙监听手机按键

【HarmonyOS Next】鸿蒙监听手机按键 一、前言 应用开发中我们会遇到监听用户实体按键&#xff0c;或者扩展按键的需求。亦或者是在某些场景下&#xff0c;禁止用户按下某些按键的业务需求。 这两种需求&#xff0c;鸿蒙都提供了对应的监听事件进行处理。 onKeyEvent 默认的…...

【Spring详解五】bean的加载

五、bean的加载 当我们显示或者隐式地调用 getBean() 时&#xff0c;则会触发加载 bean 阶段。示例代码如下&#xff1a; public class AppTest {Testpublic void MyTestBeanTest() {BeanFactory bf new XmlBeanFactory( new ClassPathResource("spring-config.xml"…...