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

数组-检查数组内是否存在和为7的倍数的子序列

一、题目描述

二、解题思路

这里首先要分辨清楚是子序列还是子数组

        原数组:[1,2,3,4,5]

        子序列:元素和元素之间相对位置保持不变,但是在原数组中不一定连续,如:[1,3,4];

        子数组:元素元素之间保持原数组的连续关系,如:[1,2,3];

问题中问的是子序列

        所以我们这边可以使用回溯法,在回溯过程中判断是否存在子序列和为7的倍数(相当于穷举了所有情况)。

        设置一个标记数组hasUsed,用于判断当前元素是否被使用过,如果没有使用过纳入子序列范围计算和,然后做出判断,直到所有的子序列都尝试过。

三、代码实现

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型一维数组 * @return int整型*/public int findRainbow (int[] nums) {// write code here//初始化hasUsed数组boolean[] hasUsed = new boolean[nums.length];for(int i=0;i<nums.length;i++){hasUsed[i]=false;}return recursiveFunc(nums,hasUsed,0)?1:0;}//注意:这里是子序列,并不是子数组,不能直接通过双层for循环来实现//通过回溯法进行查找public boolean recursiveFunc(int[] nums,boolean[] hasUsed,int nowSum){boolean resbool=false;//如果没找到则默认返回falseif(nowSum!=0&&nowSum%7==0){resbool=true;}else{for(int i=0;i<nums.length;i++){if(!hasUsed[i]){nowSum+=nums[i];hasUsed[i]=true;if(recursiveFunc(nums,hasUsed,nowSum)){resbool=true;break;}else{//这里注意,把未满足情况的当前元素要从nowSum中删除nowSum-=nums[i];hasUsed[i]=false;}}}}return resbool;}
}

四、测试用例问题

在提交测试中:这个测试用例没有通过,这个测试用例应该是返回1,在提交以后注意一下。

五、刷题链接

牛牛的彩虹数组_牛客题霸_牛客网

http://www.lryc.cn/news/357325.html

相关文章:

  • 【图像处理与机器视觉】图像处理概述与像素
  • 虚函数的性能消耗到底在哪?
  • Visual Studio 的使用
  • Web前端与App前端:深入剖析两者的异同
  • 初学者必读:Midjourney AI创作工具的简易使用手册!
  • 使用python绘制一个五颜六色的爱心
  • 关于锂电池短路测试
  • 排序(前篇)
  • Linux学习笔记(二)
  • Git——pull request详细教程
  • Prompt工程与实践
  • 电脑录屏怎么录?7个电脑录屏软件免费版强势来袭,赶快收藏!
  • ts: 映射类型
  • 调出idea解决冲突界面
  • android studio项目 gradle-xx-bin.zip下载失败或很慢的解决方法
  • Python系列:教你使用PyMySQL操作MySQL数据库
  • mysql数据库管理面试题-1
  • Linux安装zsh并配置oh-my-zsh
  • echarts(6大基础图表)的使用
  • React hooks - forwardRef+useImperativeHandle
  • MyBatis出现:SQLSyntaxErrorException: Unknown column ‘XXX‘ in ‘field list‘
  • 代码随想录算法训练营Day54 | 392.判断子序列、115.不同的子序列 | Python | 个人记录向
  • 利用oracle默认事务隔离级别(提交读)提升多表联查速度
  • B/S架构+java语言+Mysqladr数 据 库ADR药物不良反应监测系统源码 ADR药物不良反应监测系统有哪些作用?
  • Matlab中% note that Wilkinson notation (‘L1~L4~1‘) is used to specify the model
  • 测试测试测试
  • 动态规划专题
  • .net8.0与halcon编程环境构建
  • 文心智能体平台:快来创建你的Java学习小助理,全方位辅助学习
  • AppInventor2 表格布局的外面的黑框怎么去掉?