【Leetcode -455.分发饼干 -459.重复的字符串】

news2024/11/27 21:07:47

Leetcode

  • Leetcode -455.分发饼干
  • Leetcode - 459.重复的字符串

Leetcode -455.分发饼干

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

示例 1 :
输入: g = [1, 2, 3], s = [1, 1]
输出 : 1
解释 :
你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1, 2, 3。
虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。
所以你应该输出1。

示例 2 :
输入: g = [1, 2], s = [1, 2, 3]
输出 : 2
解释 :
你有两个孩子和三块小饼干,2个孩子的胃口值分别是1, 2。
你拥有的饼干数量和尺寸都足以让所有孩子满足。
所以你应该输出2.

思路是先将两个数组从小到大排序,用两个指针 i 和 j 分别遍历两个数组;当s[j] 饼干的尺寸大于等于当前g[i]孩子的胃口时,i和j都往后走;否则,s[j] 小于g[i]时,j往后走,直到找到适合当前孩子的饼干尺寸;最终返回i;

		int compare(void* p1, void* p2)
		{
		    return *(int*)p1 - *(int*)p2;
		}
		
		int findContentChildren(int* g, int gSize, int* s, int sSize)
		{
		    //给两个数组排序
		    qsort(g, gSize, sizeof(g[0]), compare);
		    qsort(s, sSize, sizeof(s[0]), compare);
		
		    //i和j分别遍历孩子的胃口值和我有的饼干数量尺寸
		    int i = 0, j = 0;
		
		    //i和j都要小于数组长度
		    while (i < gSize && j < sSize)
		    {
		        //当我的饼干尺寸小于孩子的胃口值,饼干的尺寸往后遍历,直到找到合适这个孩子的胃口的饼干
		        //当我的饼干尺寸大于等于孩子的胃口值,i和j都往后遍历,判断下个孩子的胃口值
		        //i统计的是当前胃口已经满的孩子,所以最终返回i即可
		        if (s[j] >= g[i])
		        {
		            i++;
		        }
		        j++;
		    }
		    return i;
		}

Leetcode - 459.重复的字符串

题目:给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。

示例 1:
输入: s = “abab”
输出 : true
解释 : 可由子串 “ab” 重复两次构成。

示例 2 :
输入 : s = “aba”
输出 : false

示例 3 :
输入 : s = “abcabcabcabc”
输出 : true
解释 : 可由子串 “abc” 重复四次构成。(或子串 “abcabc” 重复两次构成。)

思路是用两个指针 i 和 j ,i遍历一次,j会逐一判断i之前的元素是否相同,若不相同,则不是重复字符串,flag置0;若相同,则继续遍历,直到j遍历完;这一过程 i 就是在寻找开始重复字符串的开头,这样子 j 遍历 i 之前的元素就会每一个都相同,若不相同,则说明从 i 这个位置开始不能构成 s 的字串;

例如图,i 从下标为1开始,将 i 赋给 j ,判断 i 之前的元素是否可以构成 s 的字串,很明显从下标1开始不能构成;

在这里插入图片描述

i 从下标2开始,根据思路,i 之前的元素是可以构成 s 的字串的;

在这里插入图片描述

		bool repeatedSubstringPattern(char* s)
		{
		    //i找到开始重复字符串的开头,j开始遍历,逐一判断i之前的元素是否相同,
		    //若不相同,则不是重复字符串,flag置0;若相同,则继续遍历,直到j遍历完,flag还没有置0,就返回true
		    for (int i = 1; i <= strlen(s) / 2; i++)
		    {
		        //长度为奇数不可能有重复的字符串
		        if (strlen(s) % i == 0)
		        {
		            //flag默认为1
		            int flag = 1;
		
		            for (int j = i; j < strlen(s); j++)
		            {
		                if (s[j] != s[j - i])
		                {
		                    flag = 0;
		                    break;
		                }
		            }
		            if (flag)
		            {
		                return true;
		            }
		        }
		    }
		    return false;
		}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多语言的APP外包开发流程

很多创业的人希望把APP做成多国家使用的模式&#xff0c;尤其是一些小游戏开发&#xff0c;很多小游戏玩法全世界都是一样的&#xff0c;这样开发一次就可以在全球推广。在开发这种类型软件的过程中需要注意哪些呢&#xff0c;今天和大家分享这方面的知识。北京木奇移动技术有限…

C语言入门篇——字符串,内存函数

目录 1、字符串函数 1.1求字符串长度 1.1.1strlen函数 1.2长度不受限制的字符串函数 1.2.1strcpy函数 1.2.2strcat函数 1.2.3strcmp函数 1.3长度受限制的字符串函数介绍 1.3.1strncpy函数 1.3.2strncat函数 1.3.3strncmp函数 1.4字符串查找 1.4.1strstr函数 1.4.…

JavaScript实现输入年龄来判断年龄阶段是青年/中年/老年人的代码

以下为实现输入年龄来判断年龄阶段是青年/中年/老年人的程序代码和运行截图 目录 前言 一、实现输入年龄来判断年龄阶段是青年/中年/老年人 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以在目录里进行快速查找…

open3d 裁剪点云

目录 1. crop_point_cloud 2. crop 3. crop_mesh 1. crop_point_cloud 关键函数 chair vol.crop_point_cloud(pcd) # vol: SelectionPolygonVolume import open3d as o3dif __name__ "__main__":# 1. read pcdprint("Load a ply point cloud, crop it…

哪些蓝牙耳机戴久不疼?长时间佩戴不疼的蓝牙耳机推荐

现在的真无线耳机已经成为了人们的标配之一了&#xff0c;各个厂家也紧随其后&#xff0c;生产出了多种无线耳机&#xff0c;不少人的选购蓝牙耳机一般都是对音质、佩戴和连接&#xff0c;但通常人们佩戴蓝牙耳机都是在半天左右&#xff0c;小编专门整理了一期舒适度高的耳机&a…

从 0~1 创建 Vue2 项目

前言 从0开始搭建Vue2项目&#xff1b;介绍项目目录结构&#xff1b;为了项目方便需要添加的配置。创建 Vue2 项目共有两种方式&#xff1a; 手动选择&#xff1b;选择默认模式。 给孩子点点关注吧&#xff01;&#x1f62d; 一、环境准备 1.1 安装包管理工具 1.1.1 安装 …

使用CV-CUDA提高基于计算机视觉的任务吞吐量

使用CV-CUDA提高基于计算机视觉的任务吞吐量 涉及基于 AI 的计算机视觉的实时云规模应用程序正在迅速增长。 用例包括图像理解、内容创建、内容审核、映射、推荐系统和视频会议。 然而&#xff0c;由于对处理复杂性的需求增加&#xff0c;这些工作负载的计算成本也在增长。 从…

凌恩生物文献分享|南农大胡锋教授团队揭示苯并[a]芘胁迫影响蚯蚓肠道病毒组生态适应策略机制

蚯蚓被誉为“土壤生态系统工程师”&#xff0c;对于土壤结构改良、有机质分解、土壤污染修复具有重要意义&#xff0c;同时蚯蚓也被作为评估污染物生态风险的灵敏指示者。蚯蚓肠道微生物对于蚯蚓生态功能的发挥至关重要&#xff0c;为了充分利用蚯蚓的生态和生物技术效益&#…

Python每日一练:蚂蚁家族(详解集合法)

文章目录 前言一、题目二、代码分析总结 前言 这题挺有意思&#xff0c;感觉评简单难度有点低了&#xff0c;如果正经用无向图来做&#xff0c;代码还是有点长的。首先得建立节点&#xff0c;估计除第一个和最后一个每个节点都是一条线连进&#xff0c;一条线连出的。就可以这…

对接银行处理退票的解决方案

什么是退票&#xff1f; 在跨行支付时&#xff0c;付款请求提交汇出行后&#xff0c;由汇出行转交至人民银行支付系统&#xff0c;经人民银行大小额系统处理后会先返回交易成功的结果&#xff0c;再由人民银行转至收款行&#xff0c;收款行在清算过程中会将收款人账户信息、状…

MyBatis--XxxxMapper.xml-SQL 映射文件和MyBatis--动态SQL 语句-更复杂的查询业务需求

目录 MyBatis--XxxxMapper.xml-SQL 映射文件 XxxMapper.xml-基本介绍 MyBatis 的真正强大 2、SQL 映射文件 XxxMapper.xml-详细说明 因为这是一个宁外开了一个项目所以做一下前期准备 Monster.java MonsterMapper接口 MonsterMapper .xml MonsterMapperTest.java jdbc…

【sop】基于灵敏度分析的有源配电网智能软开关优化配置[升级1](Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【AI大模型】教你用百度《文心一言》5分钟写一篇博客

文章目录 前言文心一言是什么文心一言可以做什么文心一言写博客申请体验写在最后 前言 当今社会&#xff0c;博客已成为了许多人分享观点、知识和经验的重要平台。用文心一言写博客是将自己的思考、想法和经验以文字的形式呈现出来&#xff0c;让更多人了解自己。通过写博客&a…

量化因子在 DolphinDB 中的流式实现攻略

DolphinDB 是一款高性能分布式时序数据库。与传统的关系数据库和常见的时序数据库不同&#xff0c;DolphinDB 不仅提供了高速存取时序数据的基本功能&#xff0c;而且内置了向量化的多范式编程语言与强大的计算引擎。DolphinDB 的计算引擎不仅可以用于量化金融的回测和研发&…

Aztec 征集 Rollup Sequencer去中心化提案

1. 引言 前序博客&#xff1a; Rollup去中心化Rollup Decentralization Aztec Rollup中Sequencer角色的主要职责为&#xff1a; 1&#xff09;从mempool中选取pending交易2&#xff09;将选中的pending交易排序打包到L2区块中3&#xff09;验证所有private交易proof以检查其…

数据结构(C语言):递归算法删除链表中所有值为x的结点

一、一个递归算法的诞生过程 这个标题为什么要叫“一个递归算法的诞生过程”呢&#xff1f;因为我在写这个算法的时候可谓一波三折&#xff0c;冲破重重Bug最终才得到了正确的算法。 所以在这里我和大家分享一下我写这段代码的整个过程。其中提到的一些问题大家可能写代…

网络信息安全攻防学习平台CTF练习-基础篇

网络信息安全攻防学习平台 &#xff1a;http://hackinglab.cn/main.php 1、key在哪里&#xff1f; 进入环境之后&#xff0c;右击查看源代码&#xff0c;看到key再网页备注里面&#xff1a; 2、再加密一次你就得到key啦~ 根据提示信息&#xff0c;在加密一次就能得到key&#…

shell脚本----基础命令sort-tr-uniq-cut-split-paste-eval

文章目录 一、sort命令二、uniq命令三、 tr命令四、cut命令五、split命令六、paste命令七、eval命令 一、sort命令 sort命令以行为单位对文件内容进行排序&#xff0c;也可以根据不同的数据类型来排序&#xff0c;比较的原则是从首字符向后&#xff0c;一次按ASCII码的值进行比…

Mail.Ru邮箱注册教程

Mail.Ru 简介 Mail.Ru来自俄罗斯一家网络公司。该初始建立于1998年作为电子邮件服务&#xff08;因此而得名&#xff09;&#xff0c;并继续成为网络的俄语圈主要参与者&#xff0c;每月活跃用户达到俄罗斯网络用户的86&#xff05;&#xff0c;是俄罗斯最大的两家互联网企业之…

Java框架学习03(Spring中设计模式详解)

1、控制反转(IoC)和依赖注入(DI) IoC(Inversion of Control,控制反转) 是 Spring 中一个非常非常重要的概念&#xff0c;它不是什么技术&#xff0c;而是一种解耦的设计思想。 IoC 的主要目的是借助于“第三方”(Spring 中的 IoC 容器) 实现具有依赖关系的对象之间的解耦(IOC…