代码随想录五刷day8

核回归(Kernel Regression) 本文讲解了核函数,并且实战通过核函数进行了预测,并附python代码 阅读详情

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言


一、力扣77. 组合

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> combine(int n, int k) {
        fun(n,k,1,1);
        return res;
    }
    public void fun(int n, int k, int cur, int deep){
        if(deep > k){
            res.add(new ArrayList<>(path));
            return ;
        }
        for(int i = cur; i <= n ; i ++){
            path.add(i);
            fun(n, k, i+1, deep+1);
            path.remove(path.size()-1);
        }
    }
}

二、力扣216. 组合总和 III

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new LinkedList<>();
    public List<List<Integer>> combinationSum3(int k, int n) {
        fun(k,n,0,1);
        return res;
    }
    public void fun(int k , int n, int sum, int cur){
        if(path.size() == k){
            if(sum == n){
                res.add(new ArrayList<>(path));
            }
            return;
        }
        for(int i = cur; i < 10; i ++){
            path.add(i);
            fun(k, n, sum + i, i + 1);
            path.removeLast();
        }
    }
}

二、力扣17. 电话号码的字母组合

class Solution {
    String[] str = new String[]{
        "","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"
    };
    List<String> res = new ArrayList<>();
    StringBuilder sb = new StringBuilder();
    public List<String> letterCombinations(String digits) {
        if(digits == null || digits.equals("")){
            return res;
        }
        fun(digits, 0);
        return res;
    }
    public void fun(String digits, int cur){
        if(sb.length() >= digits.length()){
            res.add(sb.toString());
            return;
        }
        String s = str[digits.charAt(cur)-'0'];
        for(int i = 0; i < s.length();i ++){
            sb.append(s.charAt(i));
            fun(digits, cur +1);
            sb.deleteCharAt(sb.length()-1);
        }
    }
}

三、力扣39. 组合总和

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    LinkedList<Integer> path = new LinkedList<>();
    public List<List<Integer>> combinationSum(int[] candidates, int target) {
        Arrays.sort(candidates);
        fun(candidates, target,0, 0);
        return res;
    }
    public void fun(int[] candidates, int target,int cur ,int sum){
        if(sum >= target){
            if(sum == target){
                res.add(new ArrayList<>(path));
            }
            return;
        }
        for(int i = cur; i < candidates.length; i ++){
            path.add(candidates[i]);
            fun(candidates, target, i,sum + candidates[i]);
            path.removeLast();
        }
    }
}

四、力扣40. 组合总和 II

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    LinkedList<Integer> path = new LinkedList<>();
    public List<List<Integer>> combinationSum2(int[] candidates, int target) {
        Arrays.sort(candidates);
        fun(candidates, target, 0, 0);
        return res;
    }
    public void fun(int[] candidates, int target, int sum, int cur){
        if(sum >= target){
            if(sum == target){
                res.add(new ArrayList<>(path));
            }
            return;
        }
        for(int i = cur; i < candidates.length; i ++){
            if(i != cur && candidates[i] == candidates[i-1]){
                continue;
            }
            if(sum + candidates[i] > target){
                return;
            }
            path.add(candidates[i]);
            fun(candidates, target, sum + candidates[i], i+1);
            path.removeLast();
        }
    }
}

五、力扣131. 分割回文串

class Solution {
    List<List<String>> res = new ArrayList<>();
    List<String> str = new ArrayList<>();
    public List<List<String>> partition(String s) {
        fun(s, 0, new StringBuilder());
        return res;
    }
    public void fun(String s, int idx, StringBuilder sb){
        if(idx == s.length()){
            res.add(new ArrayList<>(str));
            return;
        }
        for(int i = idx; i < s.length(); i ++){
            sb.append(s.charAt(i));
            if(chech(s,idx, i)){
                str.add(sb.toString());
                fun(s, i+1, new StringBuilder());
                str.remove(str.size()-1);
            }
        }
    }
    public boolean chech(String s, int i, int j){
        for(; i <= j; i ++, j --){
            if(s.charAt(i) != s.charAt(j)){
                return false;
            }
        }
        return true;
    }
}

六、力扣93. 复原 IP 地址

class Solution {
    List<String> res = new ArrayList<>();
    List<String> path = new ArrayList<>();
    public List<String> restoreIpAddresses(String s) {
        if(s.length() < 4 || s.length() > 12){
            return res;
        }
        fun(s,0, new StringBuilder());
        return res;
    }
    public void fun(String s, int idx, StringBuilder sb1){
        if(idx == s.length()){
            if(path.size() == 4){
                StringBuilder sb = new StringBuilder();
                for(int i = 0; i < 4; i ++){
                    sb.append(path.get(i));
                    if(i < 3){
                        sb.append(".");
                    }
                }
                res.add(sb.toString());
            }
            return;
        }
        for(int i = idx; i < s.length(); i ++){
            sb1.append(s.charAt(i));
            if(funA(sb1)){
                path.add(sb1.toString());
                fun(s, i+1, new StringBuilder());
                path.remove(path.size()-1);
            }
        }
    }
    public boolean funA(StringBuilder sb1){
        if(sb1.length() > 1 && sb1.charAt(0) == '0'){
            return false;
        }
        if(sb1.length() > 3){
            return false;
        }
        int sum = 0, k = 1;
        for(int i = sb1.length()-1; i >= 0 ; i --){
            int a = sb1.charAt(i) - '0';
            sum += (a * k);
            k *= 10;
        }
        if(sum < 0 || sum > 255){
            return false;
        }
        return true;
    }
}

七、力扣78. 子集

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> subsets(int[] nums) {
        fun(nums,0);
        return res;
    }
    public void fun(int[] nums, int idx){
        res.add(new ArrayList<>(path));
        if(idx >= nums.length){
            return;
        }
        for(int i = idx; i < nums.length; i ++){
            path.add(nums[i]);
            fun(nums, i +1);
            path.remove(path.size()-1);
        }
    }
}

八、力扣90. 子集 II

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        fun(nums, 0);
        return res;
    }
    public void fun(int[] nums, int idx){
        res.add(new ArrayList<>(path));
        if(idx >= nums.length){
            return;
        }
        for(int i = idx; i < nums.length; i ++){
            if(i != idx && nums[i] == nums[i-1]){
                continue;
            }
            path.add(nums[i]);
            fun(nums, i+1);
            path.remove(path.size()-1);
        }
    }
}

九、力扣491. 非递减子序列

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> findSubsequences(int[] nums) {
        fun(nums, 0, new HashSet());
        return res;
    }
    public void fun(int[] nums, int idx, Set<Integer> set){
        if(path.size() >= 2){
            res.add(new ArrayList<>(path));
        }
        if(idx >= nums.length){
            return;
        }
        for(int i = idx; i < nums.length; i ++){
            if(set.contains(nums[i])){
                continue;
            }
            if(funA(path, nums[i])){
                set.add(nums[i]);
                path.add(nums[i]);
                fun(nums, i+1, new HashSet<>());
                path.remove(path.size()-1);
            }
        }
    }
    public boolean funA(List<Integer> path, int a){
        if(path == null || path.size() == 0){
            return true;
        }
        if(path.size() == 1){
            return path.get(0) <= a;
        }
        for(int i = 1; i < path.size(); i ++){
            if(path.get(i) < path.get(i-1)){
                return false;
            }
        }
        return path.get(path.size()-1) <= a ;
    }
}

十、力扣46. 全排列

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    boolean[] flag;
    public List<List<Integer>> permute(int[] nums) {
        flag = new boolean[nums.length];
        fun(nums);
        return res;
    }
    public void fun(int[] nums){
        if(path.size() == nums.length){
            res.add(new ArrayList<>(path));
            return;
        }
        for(int i = 0; i < nums.length; i ++){
            if(flag[i]){
                continue;
            }
            path.add(nums[i]);
            flag[i] = true;
            fun(nums);
            path.remove(path.size()-1);
            flag[i] = false;
        }
    }
}

十一、力扣47. 全排列 II

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    boolean[] flag;
    public List<List<Integer>> permuteUnique(int[] nums) {
        flag = new boolean[nums.length];
        Arrays.sort(nums);
        fun(nums);
        return res;
    }
    public void fun(int[] nums){
        if(path.size() >= nums.length){
            res.add(new ArrayList<>(path));
            return;
        }
        for(int i = 0; i < nums.length; i ++){
            if(flag[i]){
                continue;
            }
            if(i > 0 && nums[i] == nums[i-1] && flag[i-1]){
                continue;
            }
            path.add(nums[i]);
            flag[i] = true;
            fun(nums);
            path.remove(path.size()-1);
            flag[i] = false;
        }
    }
}

十二、力扣90. 子集 II

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        fun(nums,0);
        return res;
    }
    public void fun(int[] nums, int idx){
        res.add(new ArrayList<>(path));
        if(idx == nums.length){
            return;
        }
        for(int i = idx; i < nums.length; i ++){
            if(i > idx && nums[i] == nums[i-1]){
                continue;
            }
            path.add(nums[i]);
            fun(nums, i +1);
            path.remove(path.size()-1);
        }
    }
}

十三、力扣40. 组合总和 II

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    public List<List<Integer>> combinationSum2(int[] candidates, int target) {
        Arrays.sort(candidates);
        fun(candidates, target, 0, 0);
        return res;
    }
    public void fun(int[] candidates, int target, int sum, int cur){
        if(sum >= target){
            if(sum == target){
                res.add(new ArrayList<>(path));
            }
            return;
        }
        for(int i = cur; i < candidates.length; i ++){
            if(i > cur && candidates[i] == candidates[i-1]){
                continue;
            }
            path.add(candidates[i]);
            fun(candidates, target, sum+candidates[i], i+1);
            path.remove(path.size()-1);
        }
    }
}

十四、力扣47. 全排列 II

在这里插入代码片class Solution {
    List<List<Integer>> res = new ArrayList<>();
    List<Integer> path = new ArrayList<>();
    boolean[] flag;
    public List<List<Integer>> permuteUnique(int[] nums) {
        flag = new boolean[nums.length];
        Arrays.sort(nums);
        fun(nums);
        return res;
    }
    public void fun(int[] nums){
        if(path.size() == nums.length){
            res.add(new ArrayList<>(path));
            return;
        }
        for(int i = 0; i < nums.length; i ++){
            //同一树层
            if(i > 0 && nums[i] == nums[i-1] && !flag[i-1]){
                continue;
            }
            if(!flag[i]){
                flag[i] = true;
                path.add(nums[i]);
                fun(nums);
                flag[i] = false;
                path.remove(path.size()-1);
            }
        }
    }
}

十五、力扣332. 重新安排行程

class Solution {
    Deque<String> res = new LinkedList<>();
    Map<String, Map<String,Integer>> map = new HashMap<>();
    public List<String> findItinerary(List<List<String>> tickets) {
        for(List<String> list : tickets){
            Map<String, Integer> temp = null;
            if(map.containsKey(list.get(0))){
                temp = map.get(list.get(0));
                temp.put(list.get(1), temp.getOrDefault(list.get(1),0) + 1);
            }else{
                temp = new TreeMap<>();
                temp.put(list.get(1), 1);
            }
            map.put(list.get(0), temp);
        }
        res.add("JFK");
        fun(tickets.size() + 1);
        return new ArrayList<>(res);
    }
    public boolean fun(int ticketNum){
        if(res.size() == ticketNum){
            return true;
        }
        String last = res.getLast();
        if(map.containsKey(last)){
            for(Map.Entry<String,Integer> entry : map.get(last).entrySet()){
                int count = entry.getValue();
                if(count > 0){
                    res.add(entry.getKey());
                    entry.setValue(count - 1);
                    if(fun(ticketNum)){
                        return true;
                    }
                    entry.setValue(count);
                    res.removeLast();
                }
            }
        }
        return false;
    }
}

十六、力扣51. N 皇后

class Solution {
    List<List<String>> res = new ArrayList<>();
    char[][] path;
    public List<List<String>> solveNQueens(int n) {
        path = new char[n][n];
        for(char[] c : path){
            Arrays.fill(c,'.');
        }
        fun(n, 0);
        return res;
    }
    public void fun(int n, int cur){
        if(cur == n){
            List<String> temp = new ArrayList<>();
            for(int i = 0; i <n; i ++){
                StringBuilder sb = new StringBuilder();
                for(int j = 0; j < n; j ++){
                    if(path[i][j] != 'Q'){
                        sb.append(".");
                    }else{
                        sb.append("Q");
                    }
                }
                temp.add(sb.toString());
            }
            res.add(temp);
            return;
        }
        for(int i = 0; i < n; i ++){
            if(funA(cur, i, n)){
                path[cur][i] = 'Q';
                fun(n, cur + 1);
                path[cur][i] = '.';
            }
        }
    }
    public boolean funA(int l, int d, int n){
        for(int i = 0; i < n; i ++){
            if(path[l][i] == 'Q'){
                return false;
            }
        }

        for(int i = 0; i < n; i ++){
            if(path[i][d] == 'Q'){
                return false;
            }
        }

        for(int i = l, j = d; i >= 0 && j >= 0; i --, j --){
            if(path[i][j] == 'Q'){
                return false;
            }
        }
        for(int i = l, j = d; i >= 0 && j < n; i --, j ++){
            if(path[i][j] == 'Q'){
                return false;
            }
        }
        return true;
    }
}

十七、力扣37. 解数独

class Solution {
    public void solveSudoku(char[][] board) {
        fun(board);
    }
    public boolean fun(char[][] board){
        for(int i = 0; i < 9; i ++){
            for(int k = 0; k < 9; k ++){
                if(board[i][k] != '.'){
                    continue;
                }
                for(char j = '1'; j <= '9'; j ++){
                    if(funA(board, i,k, j)){
                        board[i][k] = j;
                        if(fun(board)){
                            return true;
                        }
                        board[i][k] = '.';
                    }
                }
                return false;
            }
        }
        return true;
    }
    public boolean funA(char[][] board, int cur, int low, char c){
        for(int i = 0; i < 9; i ++){
            if(board[cur][i] == c){
                return false;
            }
        }
        for(int i = 0; i < 9; i ++){
            if(board[i][low] == c){
                return false;
            }
        }
        int startRow = (cur/3)*3;
        int startCol = (low/3)*3;
        for(int i = startRow; i < startRow + 3; i ++){
            for(int j = startCol; j < startCol + 3; j ++){
                if(board[i][j] == c){
                    return false;
                }
            }
        }
        return true;
    }
}
STM32H750实战:用TIM+DMA驱动ADC/DAC实现音频回环(附CubeMX配置避坑指南) 本文详细介绍了在STM32H750上构建高保真、低延迟音频链路的实战方法。通过配置TIM定时器作为硬件节拍器,精准触发ADC采集与DAC播放,并利用DMA实现数据的自动搬运,全程无需CPU干预。文章重点剖析了CubeMX配置中的关键步骤与常见“坑点”,如ADC的Conversion Data Management模式选择、DMA的FIFO与Burst模式配置,以及STM32H7系列必须开启ADC全局中断等,并提供了完整的代码实现与调试验证指南。 阅读详情

相关推荐

Ubuntu单系统安装全攻略:从删除Windows到UEFI引导设置(避坑指南)

本文提供Ubuntu单系统安装的完整指南,涵盖从安全删除Windows系统到UEFI引导设置的详细步骤。通过专业工具准备、分区方案设计、引导加载器配置等关键环节,帮助用户避免常见安装问题,实现纯净高效的Ubuntu单系统环境。特别强调UEFI引导的深度配置与安装后的性能优化,适合希望彻底转向Linux的用户。

weixin_29210727的博客 409

【代码随想录训练营第42期 打卡总结 - 刷题记录】

打卡总结

记得要努力变强 1667

中国境内及周边2839个站点的日降水量逐日降水数据集(1961-2022,0.1°/0.25°/0.5°)1、数据年份:1961-2022,日数据2、数据范围:中国境内及周边2839个站点的日降

CHM_PRE数据集基于中国境内及周边1961至今共2839个站点的日降水观测,在传统的“降水背景场+ 降水比值场”的数据集构建思路上,尝试应用月值降水约束和地形特征校正,并依据中国范围内约4万个高密度站点2015–2019年的日降水量插值后数据进行精度评价。

yushibing717的博客 2789

Day8 代码随想录 刷题记录

上述想法仅仅适用于题目中给出的样例,如果原数组的值是{12,99,458}则无法作答。指向数组中最后一个元素的位置,与find()函数相呼应,因为find函数如果未能找到对应的值,则会进入end( )。再走一轮循环,如果标记的数字的值再次在第二个数组中出现,则将该数组值设定为2,最后输出设定为2的数组值。用十个数字来遍历,如果这十个数字在第一个数组中出现过,则标记数字对应的数组的值为1。4.如果要转换成数组来做,要注意的是:将原有的数组的值看作。,因为它的查询和增删效率是最优的,如果需要集合是。

windyyyyyyyyyyy的博客 1030

手把手教你用Gazebo和VINS-MONO搞定VIO SLAM仿真(附Realsense D435i模型配置)

本文详细介绍了如何使用Gazebo和VINS-MONO构建VIO SLAM仿真环境,包括Realsense D435i模型的配置与集成。通过实战指南,帮助开发者快速搭建高保真仿真平台,优化VIO性能,并解决常见问题,适用于机器人感知与定位导航领域。

weixin_30682415的博客 159

电芯外观及体系设计(Cell Design)-①容量平衡设计(Cell Balance Design)

全面获取并正确解读客户需求,将需求进行分解和预判,结合公司现有资源、技术,给出设计方案。一个优秀的电芯设计方案,应该是稳健的,可操作的,满足客户需求的同时,并能为公司带来较多利润。电芯设计需同时考虑周期,性能,品质,加工性,成本,及安全与稳健性。设计人员时刻要有成本控制观念,但利润则是由公司战略所决定。

FDC1303864002的博客 1352

代码随想录day8 打卡

344.反转字符串。

qq_59259601的博客 639

3GPP LTE/NR信道模型

CDL(Clustered Delay Line):簇延迟线模型,包括CDL-A、CDL-B、CDL-C三个用于NLOS的信道模型,以及CDL-D、CDL-E两个用于LOS的信道模型。

LinkEverything的博客 1万+

代码随想录刷题Day36

之前层序遍历系列中做个这样的题目,这里尝试使用递归的方式来求解这个题目。但是如果是想要仿照上面的思路来解答的话,并不是简单把max改为min,因为那样的话,最小深度的那条计算路径可能不包含叶子节点(如下值为8的节点,最小深度不是右孩子深度0+1,而是2)。这道题,受对称树、相同树的题目启发,可以在遍历树的同时,尝试比较树的不同节点作为根节点的树,是否和给出的子树结构和值均相同。总之,还是旧心得,递归题目的重点是要明确递归函数的三要素,尤其是递归函数的功能和递归函数层的实现逻辑。

qq_57141819的博客 460

现代软件开发技术 | 第1章:Spring基础

Spring是一个轻量级Java 开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。

知识库搭建ing 455

OpenCV实例(一)人脸检测

计算机视觉使很多任务成为现实,其中两项任务就是人脸检测(在图像中定位人脸)和人脸识别(将人脸识别为特定的人)。OpenCV实现了一些人脸检测和识别的算法。从安全到娱乐,这些技术在现实环境中都有应用。介绍OpenCV的一些人脸检测和识别功能,并定义特定类型的可跟踪物体的数据文件。具体来说,将研究Haar级联分类器,通过分析相邻图像区域之间的对比度,确定给定图像或子图像是否与已知类型匹配。

小幽余生不加糖 5004

Day8代码随想录(1刷) 字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须、使用 O(1) 的额外空间解决这一问题。状态:完成思路:双指针翻转。交换的时候可以不用创建新的temp存储空间,使用异或如下。给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。k2kkk"bacdfeg""bacd"状态:完成思路:把字符串按2k去分割并对最后一段进行分类讨论。我这写的太冗杂了可以去简化,参考。

SuperSwaggy的博客 1102

【AI Agent 记忆共享实战】【下篇】多 Agent 会话 Session 统一共享实战:全链路工程落地、采集归一、MCP 服务、私有化部署、源码级实战

中篇我们已经锁定最终最优架构方案: 非侵入式、外部旁路采集、只读归一、中心化存储、MCP 按需检索注入。摒弃「改 Agent 源码」「软链接互通」「原生 Session 互导」等不现实方案。本篇直接落地可上线、可简历复用、可个人私有化部署多 Agent 异构 Session专属采集器(Claude/CODex/DSH/OpenCode/Kimi/WorkBuddy/ 豆包)统一消息归一化解析层(解决所有 Schema 异构)增量同步、去重、时间戳对齐核心逻辑。

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 483

代码随想录跟刷Day8

需要注意s.length()是unsigned int,无符号数,用s.length() - num去判断有可能导致数据溢出,需要避免。直接双指针交换就行了。

gmail_82410的博客 156

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

代码随想录Day8

字符串操作相对比较简单,自己能完整把代码搞定,思路也和书里相差不大,2H。

qq_32464727的博客 596

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

代码随想录算法训练营day8

今天是算法营的第8天,希望自己能够坚持下来!今日任务:● 344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字今天又加深了对双指针的用法,很多考察数组、链表、字符串等操作的面试题,都使用双指针法。27.移除元素:快慢指针,快指针找新数组需要的元素,覆盖到慢指针所指的位置15.三数之和:先将数组排序,遍历数组,双指针分别在头尾,根据三数之和移动头和尾指针的位置,需要注意对a,b,c三个数的去重18.四数之和:在三数之和外面再套一层for循环,需要注意剪枝的细节。

qq_38365428的博客 806

代码随想录一刷总结

代码随想录的题目安排和讲解都属于是很清晰简洁的,最好的一点在于是图文讲解配合视频,这样我不用每次都戴耳机去看课,只有不懂的才需要看课程而且也让我养成了写博客的习惯,边输入边输出,能进一步检查自己是不是理解了,比如后面图论的几章,确实是不怎么看得懂,所以就写的很少了,二刷的时候也能够根据这些来分辨自己哪里薄弱行百里者半九十,学吧学吧。

weixin_48013375的博客 506

代码随想录刷题day34丨 62.不同路径 ,63. 不同路径 II

文档讲解:https://programmercarl.com/0062.%E4%B8%8D%E5%90%8C%E8%B7%AF%E5%BE%84.html解题思路:动态规划确定dp数组(dp table)以及下标的含义确定递推公式dp数组的初始化确定遍历顺序举例推导dp数组。

m0_75195038的博客 1285

代码随想录刷题day8

中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。感悟:联想到之前刷过的反转整个字符串的题,在本题里也有应用。先去除多余的空格,再将整个字符串翻转,最后再将每个单词翻转。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。是由非空格字符组成的字符串。1、翻转字符串里的单词。

LL_xjbt的博客 201

代码随想录刷题题Day9

代码随想录刷题第九天😊😊😊,本文介绍了栈的应用:有效的括号、删除相邻重复项、逆波特兰,并用c++和Python实现

BigDavid123的博客 1043

代码随想录day8 字符串part01

今日同步开八股,速刷。字符串章节给出的建议:刷题重点是理解原理,而不是用库函数去秒。(不过能用库函数秒的题会出吗,感觉面试强度高的一批)今日任务● 344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字。

Gewe_Xiaokang的博客 466

代码随想录算法训练营Day8

【代码】day8代码随想录训练营。

lololo的博客 738

代码随想录刷题day31丨56. 合并区间,738.单调递增的数字,总结

贪心的本质是选择每一阶段的局部最优,从而达到全局最优。贪心没套路,就刷题而言,如果感觉好像局部最优可以推出全局最优,然后想不到反例,那就试一试贪心吧!for循环适合模拟从头到尾的遍历,而while循环适合模拟环形遍历。

m0_75195038的博客 874

代码随想录刷题day24丨93.复原IP地址 ,78.子集 , 90.子集II

文档讲解:https://programmercarl.com/0093.%E5%A4%8D%E5%8E%9FIP%E5%9C%B0%E5%9D%80.html解题思路:回溯只要意识到这是切割问题,切割问题可以抽象为树型结构,如图:回溯三部曲递归函数参数startIndex一定是需要的,因为不能重复分割,记录下一层递归分割的起始位置。需要一个变量pointNum,记录添加逗点的数量。递归终止条件本题明确要求只会分成4段,所以不能用切割线切到最后作为终止条件,而是分割的段数作为终止条件。

m0_75195038的博客 932

代码随想录day1_数组基础理论

代码随想录刷题记录

Gewe_Xiaokang的博客 733

代码随想录刷题day46| 单词拆分&&多重背包一刷跳过

单词拆分这一题,状态转移方程想不出来一点。。根本想不到。

东东唯一指定铲屎官 1103

《代码随想录》刷题打卡day8:字符串part02

因此,实际被翻转的元素是从第 0 个到第 n-1 个,总共 n 个字符,而不是 n+1 个。结束位置是 s.begin() + n(第 n 个字符的下一个位置)起始位置是 s.begin()(第一个字符):reverse函数操作的事是左开右闭区间。,是经典问题,算法思路需要掌握。

2301_77038122的博客 480
上一篇: 代码随想录五刷day7
下一篇: 代码随想录五刷day9
乱世在摸鱼
博客等级 码龄6年 618粉丝 296原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乱世在摸鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值