4.15搞力扣哈哈

news/2025/1/16 2:04:56/

1.

1023. 驼峰式匹配

难度中等107收藏分享切换为英文接收动态反馈

如果我们可以将小写字母插入模式串 pattern 得到待查询项 query,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。)

给定待查询列表 queries,和模式串 pattern,返回由布尔值组成的答案列表 answer。只有在待查项 queries[i] 与模式串 pattern 匹配时, answer[i] 才为 true,否则为 false

示例 1:

输入:queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FB"
输出:[true,false,true,true,false]
示例:
"FooBar" 可以这样生成:"F" + "oo" + "B" + "ar"。
"FootBall" 可以这样生成:"F" + "oot" + "B" + "all".
"FrameBuffer" 可以这样生成:"F" + "rame" + "B" + "uffer".

示例 2:

输入:queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBa"
输出:[true,false,true,false,false]
解释:
"FooBar" 可以这样生成:"Fo" + "o" + "Ba" + "r".
"FootBall" 可以这样生成:"Fo" + "ot" + "Ba" + "ll".

示例 3:

输入:queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBaT"
输出:[false,true,false,false,false]
解释: 
"FooBarTest" 可以这样生成:"Fo" + "o" + "Ba" + "r" + "T" + "est".

看题一会,出现不匹配的原因就两种情况

1,有多余的大写字母,匹配不到

2,匹配完了,pattern还未全匹配到

有以上的条件,直接开搞

bool* camelMatch(char ** queries, int queriesSize, char * pattern, int* returnSize){int sum=0;int h=strlen(pattern);*returnSize=queriesSize;bool* ans=(bool*)malloc(sizeof(1)*queriesSize);for(int j=0;j<queriesSize;j++){ans[j]=true;int i=0;int m;for(m=0;queries[j][m]!='\0';m++){if(queries[j][m]<'a'){if(queries[j][m]==pattern[i]&&i<h)i++;else{ans[j]=false;break;}}else{if(queries[j][m]==pattern[i]&&i<h)i++; }}if(i<h){ans[j]=false;}}return ans;
}

自己定义内存,有点变扭,不常写,哎呀,但是对指针的理解,还有底层的理解直接大大的提升.呀 

ok next one

506. 相对名次

难度简单207收藏分享切换为英文接收动态反馈

给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。

运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:

  • 名次第 1 的运动员获金牌 "Gold Medal" 。
  • 名次第 2 的运动员获银牌 "Silver Medal" 。
  • 名次第 3 的运动员获铜牌 "Bronze Medal" 。
  • 从名次第 4 到第 n 的运动员,只能获得他们的名次编号(即,名次第 x 的运动员获得编号 "x")。

使用长度为 n 的数组 answer 返回获奖,其中 answer[i] 是第 i 位运动员的获奖情况。

示例 1:

输入:score = [5,4,3,2,1]
输出:["Gold Medal","Silver Medal","Bronze Medal","4","5"]
解释:名次为 [1st, 2nd, 3rd, 4th, 5th] 。

示例 2:

输入:score = [10,3,8,9,4]
输出:["Gold Medal","5","Bronze Medal","Silver Medal","4"]
解释:名次为 [1st, 5th, 3rd, 2nd, 4th] 。

提示:

  • n == score.length
  • 1 <= n <= 104
  • 0 <= score[i] <= 106
  • score 中的所有值 互不相同

没啥技巧

对数组的值用枚举给他们一个排名

随后根据排名来,给字符串赋值

难点就是,要自己开二维数组

char ** findRelativeRanks(int* score, int scoreSize, int* returnSize){char** ans=(char**)malloc(sizeof(char*)*scoreSize);char * jk=(char*)malloc(sizeof(char)*20*scoreSize);int ansr[50000]={0};*returnSize=scoreSize;for(int h=0;h<scoreSize;h++)ans[h]=&jk[h*20]; for(int h=0;h<scoreSize;h++){int sum=1;for(int j=0;j<scoreSize;j++){if(score[h]<score[j])sum++;}ansr[h]=sum;}for(int b=0;b<scoreSize;b++){if(ansr[b]==1)strcpy(ans[b],"Gold Medal");else if(ansr[b]==2)strcpy(ans[b],"Silver Medal");else if(ansr[b]==3)strcpy(ans[b],"Bronze Medal");elsesprintf(ans[b], "%d",ansr[b]);}return ans;}

ok next one

1334. 阈值距离内邻居最少的城市

难度中等96收藏分享切换为英文接收动态反馈

有 n 个城市,按从 0 到 n-1 编号。给你一个边数组 edges,其中 edges[i] = [fromi, toi, weighti] 代表 fromi 和 toi 两个城市之间的双向加权边,距离阈值是一个整数 distanceThreshold

返回能通过某些路径到达其他城市数目最少、且路径距离 最大 为 distanceThreshold 的城市。如果有多个这样的城市,则返回编号最大的城市。

注意,连接城市 i 和 j 的路径的距离等于沿该路径的所有边的权重之和。

示例 1:

输入:n = 4, edges = [[0,1,3],[1,2,1],[1,3,4],[2,3,1]], distanceThreshold = 4
输出:3
解释:城市分布图如上。
每个城市阈值距离 distanceThreshold = 4 内的邻居城市分别是:
城市 0 -> [城市 1, 城市 2] 
城市 1 -> [城市 0, 城市 2, 城市 3] 
城市 2 -> [城市 0, 城市 1, 城市 3] 
城市 3 -> [城市 1, 城市 2] 
城市 0 和 3 在阈值距离 4 以内都有 2 个邻居城市,但是我们必须返回城市 3,因为它的编号最大。

示例 2:

输入:n = 5, edges = [[0,1,2],[0,4,8],[1,2,3],[1,4,2],[2,3,1],[3,4,1]], distanceThreshold = 2
输出:0
解释:城市分布图如上。 
每个城市阈值距离 distanceThreshold = 2 内的邻居城市分别是:
城市 0 -> [城市 1] 
城市 1 -> [城市 0, 城市 4] 
城市 2 -> [城市 3, 城市 4] 
城市 3 -> [城市 2, 城市 4]
城市 4 -> [城市 1, 城市 2, 城市 3] 
城市 0 在阈值距离 2 以内只有 1 个邻居城市。

提示:

  • 2 <= n <= 100
  • 1 <= edges.length <= n * (n - 1) / 2
  • edges[i].length == 3
  • 0 <= fromi < toi < n
  • 1 <= weighti, distanceThreshold <= 10^4
  • 所有 (fromi, toi) 都是不同的。

 用邻间矩阵存边,再用floyed算法得到全部得最短路

枚举一遍得到每个城市可以到达另外的城市的数目

再枚举一遍,得到最少得,要用<=的条件(要求城市的编号最大)

上代码


int findTheCity(int n, int** edges, int edgesSize, int* edgesColSize, int distanceThreshold){int a[n][n];memset(a,10001,sizeof(int)*(n*n));for(int j=0;j<edgesSize;j++){a[edges[j][0]][edges[j][1]]=edges[j][2];a[edges[j][1]][edges[j][0]]=edges[j][2];}for(int h=0;h<n;h++)for(int b=0;b<n;b++)for(int g=0;g<n;g++){a[b][g]=fmin(a[b][g],a[b][h]+a[h][g]);}int ans[n];memset(ans,0,sizeof(int)*n);for(int j=0;j<n;j++){for(int k=0;k<n;k++){if(a[j][k]<=distanceThreshold&&j!=k){ans[j]++;}}}int minr=0;int mine=ans[0];for(int h=1;h<n;h++){if(mine>=ans[h]){mine=ans[h];minr=h;}}return minr;}

其它的水题就不写了

今天,撒花谢幕,可恶明天力扣有竞赛好像,第一次打

哎呀!!!


http://www.ppmy.cn/news/47505.html

相关文章

边缘计算那些事儿—边缘智能技术

0 背景 边缘智能是边缘计算中一个非常重要的方向。它将边缘计算和人工智能算法结合起来&#xff0c;在边缘设备上就近处理目标检测、物体跟踪&#xff0c;识别等任务。这种处理方式可以降低时延&#xff0c;减少数据上送云端对回传网络的冲击&#xff0c;同时保证数据的隐私和安…

linux安装和使用jekins

Jenkins详细安装配置部署--超详细_jenkins安装部署_宝贝富贵猪的博客-CSDN博客 1.安装JDK 2.获取安装包 下载页面&#xff1a;https://jenkins.io/zh/download/ 或者Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 3.安装Jenkins sud…

持续集成部署 - Docker-compose 部署 Redis 集群(三主三从)

Docker-compose 部署 Redis 集群 1. 拉取 Redis 镜像2. 在任意目录下创建一个名为“docker-compose.yml”的文件。3. 在终端中导航到项目根目录并运行以下命令:4. 初始化集群5. 测试Redis集群环境本次部署使用 Redis 版本为:6.2.0,为单机 Redis 集群,为什么是单机的,因为 …

python爬虫原理及源码解析(入门)

目录 一、爬虫是什么&#xff1f;二、爬虫的基本原理三、HTTP协议与响应4、爬虫实现源码 一、爬虫是什么&#xff1f; ​ 如果将互联网比作一张大的蜘蛛网&#xff0c;数据便是存放在蜘蛛网的各个节点&#xff0c;而爬虫就是一只小蜘蛛&#xff0c;沿着网络抓取自己的猎物(数据…

开启虚拟机出现报错:“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”

&#x1f341;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; 文章目录 报错原因解决方式&#xff08;这里以…

Dart进阶

Dart 是一种用于构建应用程序的编程语言&#xff0c;它具有许多语法糖&#xff08;Syntactic Sugar&#xff09;特性&#xff0c;这些特性能够简化代码并提高开发效率。以下是 Dart 中一些常见的语法糖特性&#xff1a; 级联操作符&#xff08;Cascade Notation&#xff09;&a…

无限制翻译软件-中英互译字数无限

翻译软件是我们工作及学习中必不可少的工具&#xff0c;然而许多翻译软件在使用时常常会出现字数限制的问题,这使得用户在处理长文本和大量文本时变得十分麻烦。如果你也遇到了类似的问题&#xff0c;那么哪个翻译软件不限制字数将为您带来全新的翻译体验。 以下是我们的哪个翻…

2023年4月18面试题目分享(笔试+面试)

武汉某上市公司的面试分享 一、笔试题目 1.“”和”equals“方法的区别&#xff1f; 2.是否可以从一个static方法内部发出对非static方法的调用以及为什么&#xff1f; 3.Integer和int的区别&#xff1f; 4.重载和重写的区别&#xff1f; 5.C中构造器Constructor是否可以被ov…