首页 > 其他分享 >代码随想录day 23 组合总和 | 组合总和II | 分割回文串

代码随想录day 23 组合总和 | 组合总和II | 分割回文串

时间:2024-07-13 20:53:58浏览次数:11  
标签:分割 遍历 组合 随想录 回溯 字符串 总和

组合总和

组合总和

解题思路

利用回溯算法进行遍历,由于数组内的数字可以重复调用,因此在套用模板进行遍历时,下一次递归的startIndex是当前遍历的下标。
剪枝操作则是通过比较和是否大于目标值,如果大于则不进行下一次的递归,以此来减少循环遍历的次数,这个条件需要加到for循环中。

知识点

回溯

心得

注意迭代的起始点位置,以及剪枝操作时需要注意遍历的次数。

组合总和II

组合总和II

解题思路

遇上一题类似,多了一步除重的过程。除重的办法是先将数组排序,之后遍历并迭代回溯函数之后,判断下一个节点是否和当前值相等,如果相等则跳过。

知识点

回溯,除重

心得

利用了之前做题时遇到过除重的方法并和回溯算法结合。

分割回文串

分割回文串

解题思路

分割字符串是回溯算法中一类较为难的题目。由于要求的是分割字符串,所以我们构造N叉树的方法也和以往的数组题目不同。字符串分割的组合是从字符串中不同位置的分割组成的,例如第一个组合是从字符串中第一个字符开始分割,随后其子树则是每次不断向后分割一个,以此类推便能得到所有可能的组合

知识点

回溯

心得

没想到字符串的分割方法,得记下来并多次巩固。

标签:分割,遍历,组合,随想录,回溯,字符串,总和
From: https://www.cnblogs.com/TKK-YLF/p/18300678

相关文章

  • 【代码随想录|回溯算法 77. 组合】
    代码随想录|回溯算法77.组合,216.组合总和III,17.电话号码的字母组合一、77.组合1.核心代码2.输入输出3.问题总结python一、77.组合内容77.组合1.核心代码代码如下(示例):classSolution:defcombine(self,n:int,k:int)->List[List[int]]:......
  • 「代码随想录算法训练营」第十天 | 栈与队列 part2
    150.逆波兰表达式求值题目链接:https://leetcode.cn/problems/evaluate-reverse-polish-notation/题目难度:中等文章讲解:https://programmercarl.com/0150.逆波兰表达式求值.html视频讲解:https://www.bilibili.com/video/BV1kd4y1o7on题目状态:多次修改bug后通过个人思路:......
  • 代码随想录——不同路径(Leetcode LCR98)
    题目链接动态规划classSolution{publicintuniquePaths(intm,intn){int[][]dp=newint[m][n];//从(0,0)到(i,0)路径只有一条for(inti=0;i<m;i++){dp[i][0]=1;}//从(0,0)到(0,j)路......
  • 代码随想录——不同路径Ⅱ(Leetcode 63)
    题目链接动态规划classSolution{publicintuniquePathsWithObstacles(int[][]obstacleGrid){intm=obstacleGrid.length;intn=obstacleGrid[0].length;int[][]dp=newint[m][n];//遇到障碍则从(0,0)到达......
  • 代码随想录——监控二叉树(Leetcode968)不会
    题目链接贪心/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.val=val;}*TreeNode(intval,TreeNodeleft,Tr......
  • 代码随想录day22 组合 | 组合总和III | 电话号码的字母组合 |
    组合组合解题思路利用回溯算法来暴力枚举所有可能性。这里利用了代码随想录的解题模板即可。剪枝方面,由于某些情况下(如k=n)不需要遍历所有的可能性,因此我们要适当修改一下每次循环遍历的元素个数来进行优化知识点回溯心得如果知道如何将此类问题转换为一个n叉树,就会很......
  • 代码随想录算法训练营第八天| leetcode 344、541、卡码网54
    反转字符串 leetcode344classSolution{public:voidreverseString(vector<char>&s){intindex1=0,index2=s.size()-1;chartmp;while(index1<index2){tmp=s[index1];s[index1]=s[index2];......
  • ARM功耗管理之唤醒源与组合唤醒源
    安全之安全(security²)博客目录导读思考:什么是睡眠锁?什么是唤醒源?什么是组合唤醒源?DynamIQ系统下的唤醒源Redistributor中包含了一个GICR_WAKER寄存器,用于记录connectedPE的状态是onLine还是offline.如果让PE变成online,软件则必需这样做:•ClearGICR_WAKER.Processo......
  • RabbitMQ + JMeter组合,优化你的中间件处理方式!
     RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息中间件,它是基于Erlang语言编写的,并发能力强,性能好,是目前主流的消息队列中间件之一。 RabbitMQ的安装可参照官网(https://www.rabbitmq.com/),安装完以后启动管理服务,RabbitMQ提供强大的管理功能。 在使用Jmeter处理Rabbi......
  • 「代码随想录算法训练营」第九天 | 栈与队列 part1
    232.用栈实现队列题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/题目难度:简单文章讲解:https://programmercarl.com/0232.用栈实现队列.html视频讲解:https://www.bilibili.com/video/BV1nY4y1w7VC题目状态:看视频讲解后通过思路:通过两个栈来实现队......