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

蓝桥刷题note9(分发饼干,最长回文子串)

1.分发饼干 

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

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

中心思路:运用贪心算法思想,每次都取最优解,使得整体趋向最优解,再次体重表现为每                    次分配大于等于胃口最小孩子最小的饼干。

int compare(const void *a,const void *b){
    return(*(int*)a-*(int*)b);              //比较函数,用于排序
}
int findContentChildren(int* g, int gSize, int* s, int sSize) {
   qsort(g,gSize,sizeof(int),compare);
   qsort(s,sSize,sizeof(int),compare);
   int child=0;
   int cookie=0;
   while(child<gSize&&cookie<sSize){
    if(s[cookie]>=g[child]){
        child++;
    }
    cookie++;
   }
   return child;
}

 

2.最长回文子串 

给你一个字符串 s,找到 s 中最长的 回文 子串。

中心思路:采用动态规划思想,分解问题,细分情况,用一个二维数组dp[n][n]来表示哪两个                     字符相等

char* longestPalindrome(char* s) {
    int n=strlen(s);
    if(n<2){
        return s;
    }

    int dp[n][n];
    memset(dp,0,sizeof(dp));     //初始化dp为0
    int start=0;
    int maxlen=1;
    

    for(int i=0;i<n;i++){
        dp[i][i]=1;
    }
    for(int i=0;i<n-1;i++){
        if(s[i]==s[i+1]){
            dp[i][i+1]=1;
            maxlen=2;
            start=i;
        }
    }
    for(int len=3;len<=n;len++){
        for(int i=0;i<n-len+1;i++){
            int j=i+len-1;
            if(s[i]==s[j]&&dp[i+1][j-1]){
                dp[i][j]=1;
                maxlen=len;
                start=i;
            }
        }
    }
    char* result = (char*)malloc((maxlen + 1) * sizeof(char));
    strncpy(result, s + start, maxlen);       //复制字符串s给result,由s的start开始,长度为 
                                              //maxlen
    result[maxlen] = '\0'; 
    return result;
}

 

 

 

 

相关文章:

  • Windows server 2022域控制服务器的配置
  • 【Java基础-50.1】Java线程阻塞详解:类型、实现与案例分析
  • 1.1编译器概述笔记(努力持续记笔记)
  • 【江西棒垒球】如何参加奥运会·棒球5号位
  • Win98模拟器(安卓):重温经典,一键怀旧
  • 基于Spring Boot的供应商管理系统的设计与实现(LW+源码+讲解)
  • visual studio 使用ssh连接wsl失败原因
  • 神聖的綫性代數速成例題18. 正交變換、歐幾里得空間的同構、實對稱矩陣的正交相似對角化的應用”
  • 计算机网络精讲day2———计算机网络的性能指标(下)
  • 55岁了,可以用AIGC创作吗?
  • Android在kts中简单使用AIDL
  • SQLite Delete 语句详解
  • 第十六届蓝桥杯康复训练--7
  • Python实现deepseek接口的调用
  • 中间件漏洞—Jboss
  • 信号的漏桶实现
  • 神聖的綫性代數速成例題20. 廣義逆矩陣的概念與計算、線性空間上的雙線性函數及其性質、歐幾里得空間中正交投影的應用
  • 牛客周赛84 题解 Java ABCDE 仅供参考
  • Window对象与本地存储详解
  • 重装系统后遗症之zotero篇——zotero配置
  • 准80后遵义市自然资源局局长陈清松任怀仁市委副书记、代市长
  • 辛涛任山东第一医科大学副校长,曾为“博士服务团”成员
  • 准85后青海海北州副州长、州公安局局长李贤荣挂职临沂市副市长
  • 山西太原一小区发生爆炸,造成1人遇难21人受伤2人失联
  • 抗美援朝老战士宁昭逝世,享年93岁
  • “80后”杨占旭已任辽宁阜新市副市长,曾任辽宁石油化工大学副校长