【算法】滑动窗口题单——2.不定长滑动窗口(求最长/最大)

文章目录

  • 3. 无重复字符的最长子串
  • 1493. 删掉一个元素以后全为 1 的最长子数组
  • 904. 水果成篮
  • 1695. 删除子数组的最大得分
  • 2841. 几乎唯一子数组的最大和
  • 2024. 考试的最大困扰度
  • 1004. 最大连续1的个数 III
  • 1438. 绝对差不超过限制的最长连续子数组
  • 2401. 最长优雅子数组
    • 解法1——维护窗口内int各位出现的次数
    • 解法2——利用位运算的性质 维护窗口🐂
  • 1658. 将 x 减到 0 的最小操作数
  • 1838. 最高频元素的频数
  • 2831. 找出最长等值子数组
    • 解法1——双哈希表:频次哈希表 和 频次的频次哈希表
    • 解法2——分组 + 双指针 🐂
  • 2106. 摘水果
  • 1610. 可见点的最大数目⭐(坐标转换成极角)
  • 159. 至多包含两个不同字符的最长子串
  • 340. 至多包含 K 个不同字符的最长子串

题单来源: https://leetcode.cn/problems/minimum-size-subarray-in-infinite-array/solutions/2464878/hua-dong-chuang-kou-on-shi-jian-o1-kong-cqawc/

3. 无重复字符的最长子串

https://leetcode.cn/problems/longest-substring-without-repeating-characters/description/

在这里插入图片描述
提示:
0 <= s.length <= 5 * 10^4
s 由英文字母、数字、符号和空格组成

枚举右端点,根据窗口内计数情况移动左端点。

class Solution {
    public int lengthOfLongestSubstring(String s) {
        int ans = 0;
        int[] cnt = new int[128];
        for (int l = 0, r = 0; r < s.length(); ++r) {
            char ch = s.charAt(r);
            cnt[ch]++;
            while (cnt[ch] > 1) cnt[s.charAt(l++)]--;
            ans = Math.max(r - l + 1, ans);
        }
        return ans;
    }
}

1493. 删掉一个元素以后全为 1 的最长子数组

https://leetcode.cn/problems/longest-subarray-of-1s-after-deleting-one-element/description/

在这里插入图片描述
提示:

1 <= nums.length <= 10^5
nums[i] 要么是 0 要么是 1 。

窗口内最多有 1 个0,用 id 记录上一个出现 0 的位置,当出现新的 0 时,将左端点设置为 l = id + 1。 这样就保持了窗口内始终最多有 1 个 0。

class Solution {
    public int longestSubarray(int[] nums) {
        int n = nums.length, ans = 0;
        for (int l = 0, r = 0, id = -1; r < n; ++r) {
            if (nums[r] == 0) {
                l = id + 1;
                id = r;
            }
            ans = Math.max(r - l, ans);
        }
        return ans;
    }
}

904. 水果成篮

https://leetcode.cn/problems/fruit-into-baskets/description/
在这里插入图片描述
提示:

1 <= fruits.length <= 10^5
0 <= fruits[i] < fruits.length

class Solution {
    public int totalFruit(int[] fruits) {
        Map<Integer, Integer> m = new HashMap<>();
        int ans = 0;
        for (int l = 0, r = 0; r < fruits.length; ++r) {
            m.merge(fruits[r], 1, Integer::sum);
            while (m.size() > 2) {
                m.merge(fruits[l], -1, Integer::sum);
                if (m.get(fruits[l]) == 0) m.remove(fruits[l]);
                l++;
            }
            ans = Math.max(ans, r - l + 1);
        }
        return ans;
    }
}

1695. 删除子数组的最大得分

https://leetcode.cn/problems/maximum-erasure-value/description/

在这里插入图片描述

提示:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^4

class Solution {
    public int maximumUniqueSubarray(int[] nums) {
        int n = nums.length, ans = 0, s = 0;
        int[] cnt = new int[10001];
        for (int l = 0, r = 0; r < n; ++r) {
            s += nums[r];
            cnt[nums[r]]++;
            while (cnt[nums[r]] > 1) {
                s -= nums[l];
                cnt[nums[l++]]--;
            }
            if (s > ans) ans = s;
        }
        return ans;
    }
}

s > ans 判断会比使用 s = Math.max(ans, s) 快一些。

2841. 几乎唯一子数组的最大和

https://leetcode.cn/problems/maximum-sum-of-almost-unique-subarray/description/

在这里插入图片描述

提示:

1 <= nums.length <= 2 * 10^4
1 <= m <= k <= nums.length
1 <= nums[i] <= 10^9

class Solution {
    public long maxSum(List<Integer> nums, int m, int k) {
        long ans = 0, n = nums.size(), s = 0;
        Map<Integer, Integer> cnt = new HashMap<>();
        for (int i = 0; i < k - 1; ++i) {
            s += nums.get(i);
            cnt.merge(nums.get(i), 1, Integer::sum);
        }
        for (int l = 0, r = k - 1; r < n; ++l, ++r) {
            s += nums.get(r);
            cnt.merge(nums.get(r), 1, Integer::sum);
            if (cnt.size() >= m) ans = Math.max(ans, s);
            s -= nums.get(l);
            cnt.merge(nums.get(l), -1, Integer::sum);
            if (cnt.get(nums.get(l)) == 0) cnt.remove(nums.get(l));
        }
        return ans;
    }
}

2024. 考试的最大困扰度

https://leetcode.cn/problems/maximize-the-confusion-of-an-exam/description/

在这里插入图片描述

提示:
n == answerKey.length
1 <= n <= 5 * 10^4
answerKey[i] 要么是 'T' ,要么是 'F'
1 <= k <= n

维护一个滑动窗口,枚举右端点,当窗口中T和F的较小数量大于k时,将左端点向右移。
在这个过程中用窗口长度更新答案。

class Solution {
    public int maxConsecutiveAnswers(String answerKey, int k) {
        int n = answerKey.length(), ans = 0;
        int t = 0, f = 0;
        for (int l = 0, r = 0; r < n; ++r) {
            char a = answerKey.charAt(r);
            if (a == 'T') t++;
            else f++;
            // 将左端点向右移
            while (t > k && f > k) {
                a = answerKey.charAt(l++);
                if (a == 'T') t--;
                else f--;
            }
            ans = Math.max(r - l + 1, ans);
        }
        return ans;
    }
}

1004. 最大连续1的个数 III

https://leetcode.cn/problems/max-consecutive-ones-iii/description/

在这里插入图片描述

提示:

1 <= nums.length <= 10^5
nums[i] 不是 0 就是 1
0 <= k <= nums.length

维护一个窗口中最多出现 k 个 0 的滑动窗口。

class Solution {
    public int longestOnes(int[] nums, int k) {
        int n = nums.length, c0 = 0, ans = 0;
        for (int l = 0, r = 0; r < n; ++r) {
            if (nums[r] == 0) c0++;
            while (c0 > k) {
                if (nums[l++] == 0) c0--;
            }
            ans = Math.max(r - l + 1, ans);
        }
        return ans;
    }
}

1438. 绝对差不超过限制的最长连续子数组

https://leetcode.cn/problems/longest-continuous-subarray-with-absolute-diff-less-than-or-equal-to-limit/description/

在这里插入图片描述

提示:

1 <= nums.length <= 10^5
1 <= nums[i] <= 10^9
0 <= limit <= 10^9

同时维护窗口内的最大值和最小值。
可以使用 TreeMap 或者 单调队列来做。

class Solution {
    public int longestSubarray(int[] nums, int limit) {
        TreeMap<Integer, Integer> tm = new TreeMap<>();
        int ans = 0;
        for (int l = 0, r = 0; r < nums.length; ++r) {
            tm.merge(nums[r], 1, Integer::sum);
            while (tm.lastKey() - tm.firstKey() > limit) {
                tm.merge(nums[l], -1, Integer::sum);
                if (tm.get(nums[l]) == 0) tm.remove(nums[l]);
                l++;
            }
            ans = Math.max(r - l + 1, ans);
        }
        return ans;
    }
}

2401. 最长优雅子数组

https://leetcode.cn/problems/longest-nice-subarray/description/

在这里插入图片描述

提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^9

解法1——维护窗口内int各位出现的次数

题目要求即为int的32位中,每一位都最多出现一次。

class Solution {
    public int longestNiceSubarray(int[] nums) {
        int n = nums.length, ans = 0;
        int[] cnt = new int[32];
        for (int l = 0, r = 0; r < n; ++r) {
            op(cnt, nums[r], 1);
            while (!check(cnt)) op(cnt, nums[l++], -1);
            ans = Math.max(ans, r - l + 1);
        }
        return ans;
    }

    public void op(int[] cnt, int x, int m) {
        for (int i = 0; i < cnt.length; ++i) {
            if ((x >> i & 1) == 1) cnt[i] += m;
        }
    }

    public boolean check(int[] cnt) {
        for (int c: cnt) {
            if (c > 1) return false;
        }
        return true;
    }
}

解法2——利用位运算的性质 维护窗口🐂

充分 利用了 & ^ | 三种运算的性质。

使用 & 判断是否有交集。
使用 ^ 模拟去除。
使用 | 模拟加入。

class Solution {
    public int longestNiceSubarray(int[] nums) {
        int ans = 0;
        for (int left = 0, right = 0, or = 0; right < nums.length; right++) {
            // 有交集
            while ((or & nums[right]) > 0) {
                or ^= nums[left++]; // 从 or 中去掉集合 nums[left]
            }
            or |= nums[right];      // 把集合 nums[right] 并入 or 中
            ans = Math.max(ans, right - left + 1);
        }
        return ans;
    }
}

1658. 将 x 减到 0 的最小操作数

https://leetcode.cn/problems/minimum-operations-to-reduce-x-to-zero/description/

在这里插入图片描述

提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^4
1 <= x <= 10^9

等价于找到窗口内和为 sum - x 的最长子数组的长度。

class Solution {
    public int minOperations(int[] nums, int x) {
        // 等价于找到窗口内和为 sum - x 的最长子数组的长度。
        int n = nums.length, t = Arrays.stream(nums).sum() - x, ans = -1, s = 0;
        for (int l = 0, r = 0; r < n; ++r) {
            s += nums[r];
            while (l <= r && s > t) s -= nums[l++];
            if (s == t) ans = Math.max(ans, r - l + 1); 
        }
        return ans != -1? n - ans: -1;
    }
}

1838. 最高频元素的频数

https://leetcode.cn/problems/frequency-of-the-most-frequent-element/description/

在这里插入图片描述

提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^5
1 <= k <= 10^5

排序 + 滑动窗口。
每个窗口都假设变成最大的那个数字,不能变的移出窗口。

class Solution {
    public int maxFrequency(int[] nums, int k) {
        Arrays.sort(nums);
        int n = nums.length, ans = 1;
        long s = 0;
        for (int l = 0, r = 0; r < n; ++r) {
            s += nums[r];
            while ((long)(r - l + 1) * nums[r] - k > s) s -= nums[l++];
            if ((long)(r - l + 1) * nums[r] - k <= s) ans = Math.max(ans, r - l + 1);
        }
        return ans;
    }
}

2831. 找出最长等值子数组

https://leetcode.cn/problems/find-the-longest-equal-subarray/description/

在这里插入图片描述

提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= nums.length
0 <= k <= nums.length

解法1——双哈希表:频次哈希表 和 频次的频次哈希表

频次的频次哈希表 用于 快速找到最大的频次。

class Solution {
    public int longestEqualSubarray(List<Integer> nums, int k) {
        int n = nums.size(), ans = 0;
        Map<Integer, Integer> cnt = new HashMap<>();
        // 频次 哈希表 ,用于快速找到最大的频次
        TreeMap<Integer, Integer> pCnt = new TreeMap<>();
        for (int l = 0, r = 0; r < n; ++r) {
            cnt.merge(nums.get(r), 1, Integer::sum);
            pCnt.merge(cnt.get(nums.get(r)), 1, Integer::sum);
            pCnt.merge(cnt.get(nums.get(r)) - 1, -1, Integer::sum);
            while (r - l + 1 - pCnt.lastKey() > k) {
                cnt.merge(nums.get(l), -1, Integer::sum);
                pCnt.merge(cnt.get(nums.get(l)), 1, Integer::sum);
                pCnt.merge(cnt.get(nums.get(l)) + 1, -1, Integer::sum);
                if (pCnt.get(cnt.get(nums.get(l)) + 1) == 0) pCnt.remove(cnt.get(nums.get(l)) + 1);
                l++;
            }
            ans = Math.max(pCnt.lastKey(), ans);
        }
        return ans;
    }
}

解法2——分组 + 双指针 🐂

https://leetcode.cn/problems/find-the-longest-equal-subarray/solutions/2396401/fen-zu-shuang-zhi-zhen-pythonjavacgo-by-lqqau/

算法思路见下图。
在这里插入图片描述

class Solution {
    public int longestEqualSubarray(List<Integer> nums, int k) {
        int n = nums.size(), ans = 0;
        Map<Integer, List<Integer>> m = new HashMap<>();
        for (int i = 0; i < n; ++i) {
            if (!m.containsKey(nums.get(i))) {
                m.put(nums.get(i), new ArrayList<>());
            }
            List<Integer> ls = m.get(nums.get(i));
            ls.add(i - ls.size());
        }
        for (List<Integer> ls: m.values()) {
            int res = 0;
            for (int l = 0, r = 0; r < ls.size(); ++r) {
                while (ls.get(r) - ls.get(l) > k) l++;
                res = Math.max(res, r - l + 1);
            }
            ans = Math.max(ans, res);
        }
        return ans;
    }
}

2106. 摘水果

https://leetcode.cn/problems/maximum-fruits-harvested-after-at-most-k-steps/description/

在这里插入图片描述

在这里插入图片描述

维护一个窗口,窗口中是可以被采集的水果。
随着右端点的枚举,左端点也会随着窗口的扩大导致不合理,从而将左端点右移。

class Solution {
    public int maxTotalFruits(int[][] fruits, int startPos, int k) {
        int ans = 0, s = 0;
        for (int l = 0, r = 0; r < fruits.length; ++r) {
            s += fruits[r][1];
            while (l <= r && !check(fruits[l][0], fruits[r][0], startPos, k)) s-= fruits[l++][1];
            ans = Math.max(ans, s);
        }
        return ans;
    }

    // 检查窗口是否合理
    public boolean check(int a, int b, int x, int k) {
        if (a <= x && b <= x) return x - a <= k;    // 都在左边
        if (a >= x && b >= x) return b - x <= k;    // 都在右边
        // a在左边,b在右边
        a = x - a;
        b = b - x;
        return Math.min(a, b) * 2 + Math.max(a, b) <= k;
    }
}

1610. 可见点的最大数目⭐(坐标转换成极角)

https://leetcode.cn/problems/maximum-number-of-visible-points/description/

在这里插入图片描述

在这里插入图片描述

提示:
1 <= points.length <= 10^5
points[i].length == 2
location.length == 2
0 <= angle < 360
0 <= posx, posy, xi, yi <= 100

坐标转成极角的方法为 Math.atan2(),见:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Math.html#atan2(double,double)

将极角存入列表之后,再重复加入 + 2pi 的元素,这是为了计算完全。
最后使用滑动窗口计算。

class Solution {
    public int visiblePoints(List<List<Integer>> points, int angle, List<Integer> location) {
        int sameCnt = 0;
        List<Double> polarDegrees = new ArrayList<>();
        int x0 = location.get(0), y0 = location.get(1);
        for (int i = 0; i < points.size(); ++i) {
            int x = points.get(i).get(0), y = points.get(i).get(1);
            if (x == x0 && y == y0) {
                sameCnt++;
                continue;
            }
            Double degree = Math.atan2(y - y0, x - x0);
            polarDegrees.add(degree);
        }
        Collections.sort(polarDegrees);

        int m = polarDegrees.size();
        for (int i = 0; i < m; ++i) {
            polarDegrees.add(polarDegrees.get(i) + 2 * Math.PI);
        }

        int maxCnt = 0;
        double toDegree = angle * Math.PI / 180;
        for (int l = 0, r = 0; l < m; ++l) {
            Double curr = polarDegrees.get(l) + toDegree;
            while (r < polarDegrees.size() && polarDegrees.get(r) <= curr) {
                r++;
            }
            maxCnt = Math.max(maxCnt, r - l);
        }

        return maxCnt + sameCnt;
    }
}   

159. 至多包含两个不同字符的最长子串

https://leetcode.cn/problems/longest-substring-with-at-most-two-distinct-characters/description/

在这里插入图片描述

维护各个字符的出现次数,当哈希表中字符种类大于 2 的时候将左端点右移。

class Solution {
    public int lengthOfLongestSubstringTwoDistinct(String s) {
        int n = s.length(), ans = 0;
        Map<Character, Integer> cnt = new HashMap<>();
        for (int l = 0, r = 0; r < n; ++r) {
            cnt.merge(s.charAt(r), 1, Integer::sum);
            while (cnt.size() > 2) {
                cnt.merge(s.charAt(l), -1, Integer::sum);
                if (cnt.get(s.charAt(l)) == 0) cnt.remove(s.charAt(l));
                l++;
            }
            ans = Math.max(ans, r - l + 1);
        }
        return ans;
    }
}

340. 至多包含 K 个不同字符的最长子串

https://leetcode.cn/problems/longest-substring-with-at-most-k-distinct-characters/description/

在这里插入图片描述

把上一题的 2 换成 k 就好了。

class Solution {
    public int lengthOfLongestSubstringKDistinct(String s, int k) {
        int n = s.length(), ans = 0;
        Map<Character, Integer> cnt = new HashMap<>();
        for (int l = 0, r = 0; r < n; ++r) {
            cnt.merge(s.charAt(r), 1, Integer::sum);
            while (cnt.size() > k) {
                cnt.merge(s.charAt(l), -1, Integer::sum);
                if (cnt.get(s.charAt(l)) == 0) cnt.remove(s.charAt(l));
                l++;
            }
            ans = Math.max(ans, r - l + 1);
        }
        return ans;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[AutoSar]导出task mapping 表到excel

目录 关键词平台说明背景实现方法 关键词 嵌入式、C语言、autosar 平台说明 项目ValueOSautosar OSautosar厂商vector芯片厂商TI编程语言C&#xff0c;C编译器HighTec (GCC) 背景 为了做文档输出&#xff0c;要导出task mapping 到excel。 实现方法 1.按住shift&#xf…

IDEA自动注解设置(中文版)

IDEA自动注解设置 1、添加类自动注释 文件 - 设置 - 编辑器 - 文件和代码模板 - Include - File Header /** *description&#xff1a;TODO *author&#xff1a; ${USER} *create&#xff1a; ${DATE} ${TIME} */2、添加类方法自动注释 文件 - 设置 - 编辑器 - 实时模版 - …

NSS [NCTF 2018]小绿草之最强大脑

NSS [NCTF 2018]小绿草之最强大脑 题目要求我们输入一个位数>21的正数&#xff0c;带入表达式并且计算结果。 查看源码发现hint&#xff0c;有源码泄露。 拿dirsearch扫一下。扫到了一个备份文件。 python dirsearch.py -u http://node4.anna.nssctf.cn:28805/访问/index.…

SpringCloud 微服务全栈体系(十四)

第十一章 分布式搜索引擎 elasticsearch 四、RestAPI ES 官方提供了各种不同语言的客户端&#xff0c;用来操作 ES。这些客户端的本质就是组装 DSL 语句&#xff0c;通过 http 请求发送给 ES。官方文档地址&#xff1a;https://www.elastic.co/guide/en/elasticsearch/client/…

H110主板搭配魔改QNCW升级小记

最近搬家完毕&#xff0c;翻出来一块闲置已久的qncw&#xff0c;隐约记得是买的主板套装&#xff0c;现在主板早已不知踪影&#xff0c;剩下孤零零一个CPU&#xff0c;一起翻出来一个G3900T亮机CPU&#xff0c;应该是同时代的产物。 qncw百度上一搜&#xff0c;发现参数还行&am…

iTerm2+oh-my-zsh搭个Mac电脑上好用好看终端

根据苹果网站上介绍&#xff0c;bash是 macOS Mojave 及更早版本中的默认Shell&#xff0c;从 macOS Catalina 开始&#xff0c;zsh(Z shell) 是所有新建用户帐户的默认Shell。 1. 安装Oh my zsh sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzs…

代码随想录算法训练营第二十八天| 78 子集 90 子集|| 93 复原IP地址

78 子集 由题意可知数组中的元素互不相同&#xff0c;所以在dfs中我们可以将当前的path直接加入到res中。 class Solution {List<List<Integer>>res new ArrayList<>();List<Integer>path new LinkedList<>();public List<List<Integer…

计算机网络的标准化工作及相关组织

一、国际化组织 计算机网络的标准化工作由一些主要的组织来进行管理和推动。以下是几个主要的计算机网络标准化的国际组织及其相关的标准&#xff1a; 1. 国际标准化组织&#xff08;ISO&#xff09;&#xff1a;国际标准化组织负责制定各种行业的标准&#xff0c;包括计算机…

【Kingbase FlySync】命令模式:部署双轨并行,并实现切换同步

【Kingbase FlySync】命令模式:安装部署同步软件&#xff0c;实现Oracle到KES实现同步 双轨并行方案说明一.准备工作二.环境说明三.目标实操(1).准备安装环境Orcle服务器(Oracle40)1.上传所有工具包2.操作系统配置a.增加flysync 用户、设置密码b.配置环境变量c.调整limits.conf…

Django+Vue项目创建 跑通

参考链接&#xff1a; 【精选】DjangoVue项目构建_django vue-CSDN博客 一、背景 主要介绍如何使用后端Django 前端Vue 的技术栈快速地搭建起一套web项目的框架。 为什么使用Django和Vue? Django是Python体系下最成熟的web框架之一&#xff0c;由于Python语言的易用…

GIT无效的源路径/URL

ssh-add /Users/haijunyan/.ssh/id_rsa ssh-add -K /Users/haijunyan/.ssh/id_rsa

nodejs+vue实验室上机管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计

用户&#xff1a;管理员、教师、学生 基础功能&#xff1a;管理课表、管理机房情况、预约机房预约&#xff1b;权限不同&#xff0c;预约类型不同&#xff0c;教师可选课堂预约和个人&#xff1b;课堂预约。 在实验室上机前&#xff0c;实验室管理员需要对教务处发来的上机课表…

交易机器人-微信群通知

微信公众号:大数据高性能计算 1 背景 背景是基于人工去做交易本身无法做到24小时无时无刻的交易,主要是虚拟币本身它是24小时交易,人无法做到24小时盯盘,其次就是如果你希望通过配置更加复杂的规则甚至需要爬取最新的信息走模型进行量化交易的时候,就需要自己去做一些量化…

云原生专栏丨基于服务网格的企业级灰度发布技术

灰度发布&#xff08;又名金丝雀发布&#xff09;是指在黑与白之间&#xff0c;能够平滑过渡的一种发布方式。在其上可以进行A/B testing&#xff0c;即让一部分用户继续用产品特性A&#xff0c;一部分用户开始用产品特性B&#xff0c;如果用户对B没有什么反对意见&#xff0c;…

Linux调试器---gdb的使用

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C/C》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、gdb的背景 gdb&#xff0c;全称为GNU调试器&#xff08;GNU Debugger&#xff09;&#xff0c;是一个功能强大的源代码级调试工具&#xff0c;主要…

Spring 配置

配置文件最主要的目的 : 解决硬编码的问题(代码写死) SpringBoot 的配置文件,有三种格式 1.properties 2.yaml 3.yml(是 yaml 的简写) SpringBoot 只支持三个文件 1.application.properties 2.application.yaml 3.application.yml yaml 和 yml 是一样的,学会一个就行…

【Linux】冯诺依曼体系结构、操作系统、进程概念、进程状态、环境变量、进程地址空间

目录 一、冯诺依曼体系结构二、操作系统(OS)1. 操作系统是什么2. 操作系统如何做管理3. 系统调用和库函数概念 三、进程1. 进程是什么&#xff1f;2. 描述进程-PCB3. 查看进程的方法 四、进程状态1 运行、阻塞和挂起状态2 Linux中的进程状态 五、进程优先级1. 什么是优先级2.查…

深度学习中的图像融合:图像融合论文阅读与实战

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 abs 介绍图像融合概念&#xff0c;回顾sota模型&#xff0c;其中包括数字摄像图像融合&#xff0c;多模态图像融合&#xff0c; 接着评估一些代表方法 介绍一些常见应用&#xff0c;比如RGBT目标跟踪&#xff0c;…

全新云开发工具箱:融合多项功能的微信小程序源码解决方案

全新云开发工具箱&#xff1a;融合多项功能的微信小程序源码解决方案 这款微信小程序源码提供了超过40个功能&#xff0c;集合了各种实用工具&#xff0c;成为一款全能工具箱。这些功能包括证件照制作、垃圾分类查询、个性签名制作、二维码生成、文字九宫格、手持弹幕、照片压…

YOLOv8优化策略:轻量级Backbone改进 | VanillaNet极简神经网络模型 | 华为诺亚2023

🚀🚀🚀本文改进:一种极简的神经网络模型 VanillaNet,支持vanillanet_5, vanillanet_6, vanillanet_7, vanillanet_8, vanillanet_9, vanillanet_10, vanillanet_11等版本 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,…
最新文章