4.15搞力扣哈哈

这篇具有很好参考价值的文章主要介绍了4.15搞力扣哈哈。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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");
            else
                 sprintf(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:

4.15搞力扣哈哈

输入: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:

4.15搞力扣哈哈

输入: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;

}

其它的水题就不写了

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

哎呀!!!文章来源地址https://www.toymoban.com/news/detail-417586.html

到了这里,关于4.15搞力扣哈哈的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows内存取证-中等难度-下篇

    上文我们对第一台Target机器进行内存取证,今天我们继续往下学习,内存镜像请从上篇获取,这里不再进行赘述​ 攻击者执行了net use z: 10.1.1.2c$ 指令将 10.1.1.2域控制器的C盘映射到本地的Z盘,并且使用了rar压缩工具将文件存储在 crownjewlez.rar里,所以密码就在这里了 将进程

    2024年02月05日
    浏览(29)
  • 生成窗口最大值数组【中等难度】

    给定一个整数数组 nums 和一个正整数 k,滑动一个大小为 k 的窗口,从数组的左边到右边,找到每个窗口中的最大值。 示例 1: 输入:nums = {1, 3, -1, -3, 5, 3, 6, 7} 、k = 3 输出:3 3 5 5 6 7 我们可以使用双端队列(deque)来解决这个问题。双端队列可以在两端进行插入和删除操作,

    2024年02月12日
    浏览(39)
  • Docker Desktop 4.15 正式发布,这里是新功能

    Docker Desktop 4.15现在可用于所有平台:Linux、Windows 和 macOS。它附带 Docker Compose v2.13.0、Containerd v1.6.10 和 Docker Hub Tool v0.4.5 2 VirtioFS 正式发布 新的快速搜索功能 在任何 IDE 中使用开发环境 扩展下的新构建选项卡 能够使用 containerd 运行 Wasm 容器 新的 docker extension share CLI 早在 3 月

    2024年02月02日
    浏览(31)
  • 二十五、SQL 数据分析实战(9个中等难度的SQL题目)

    现有一张用户使用 App 时间表 middle_app_login,middle_app_login 表的数据如下表所示: 【题目1】根据该表统计出每个用户每次退出App与下一次登录App间隔的平均时间,如果用户只登录过一次App,则不统计,要求输出的平均时间的单位为分钟,并将其四舍五入保留一位小数。输出内

    2024年02月12日
    浏览(71)
  • 4.15 TCP Keepalive 和 HTTP Keep-Alive 是一个东西吗?

    目录 HTTP 的 Keep-Alive TCP 的 Keepalive 总结: HTTP的Keep-Alive,是应用层(用户态)实现的,称为HTTP长连接; TCP的Keepalive,是由TCP层(内核态)实现的,称为TCP保活机制。 HTTP协议采用的是 请求-应答 模式,客户端发起请求,服务端返回响应,一来一回。 Keep-Alive 就是实现了可以使

    2024年02月11日
    浏览(30)
  • LeetCode155:最小栈,最简单的中等难度题,时间击败100%,内存也低于官方

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 最近运气不错,在LeetCode上白捡一道送分题,官方设定的难度是 中等 ,然而此题难度放在 简单 的题库中都是垫底的存在,对于刷题数太少的欣宸而言,这简直就是力扣的馈赠,建议大家也不要错过

    2024年02月09日
    浏览(23)
  • 就业班 第三阶段(ansible) 2401--4.15 day1 ansible1 模块+配置

    1、ansible 是什么? 2、ansible 特点 部署简单,只需在主控端部署Ansible环境,被控端无需做任何操作; 默认使用SSH协议对设备进行管理; 有大量常规运维操作模块,可实现日常绝大部分操作; 配置简单、功能强大、扩展性强; 支持API及自定义模块,可通过Python轻松扩展; 通

    2024年04月22日
    浏览(26)
  • LeetCode98:验证二叉搜索树,居然有这么简单的中等难度,白捡(用时击败100%)

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 做这道题之前,我反复审题,最后确认:没错,不存在什么坑,这道题确实非常非常简单,然而却被官方定义为 中等 难度 这一定是送分,白捡一道中等难度题,接下来,一起来轻松愉快的享受解题

    2024年02月09日
    浏览(25)
  • 力扣622:设计循环队列(中等)

    目录 思考 一,循环队列的初始化myCircularQueueCreate 二,判断是否为空myCircularQueueIsEmpty 三,判断队列是否满了bool myCircularQueueIsFull 四,队列的插入myCircularQueueEnQueue 五,队列的删除myCircularQueueDeQueue 六,队列取头元素和尾元素myCircularQueueFront   //   myCircularQueueRear 七,销毁队列

    2024年03月13日
    浏览(29)
  • 【23真题】邮电之首!扩招15倍!专业课难度骤降!

    今天分享的是23年北京邮电大学804的信号与系统试题及解析。 本套试卷难度分析:北邮804在22年只招生6人,23年拟招生87人,扩招近15倍!22年北京邮电大学804考研真题,我也发布过,若有需要,戳这里自取!本套试题难度中等,相比22年804的题目,难度低了很多!但是题量偏大

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包