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

网站推广的阶段目标建设自己的网站怎么这么难

网站推广的阶段目标,建设自己的网站怎么这么难,珠海广告设计与制作公司,衡水网站制作报价算法沉淀——贪心算法四 01.最长回文串02.增减字符串匹配03.分发饼干04.最优除法 01.最长回文串 题目链接#xff1a;https://leetcode.cn/problems/longest-palindrome/ 给定一个包含大写字母和小写字母的字符串 s #xff0c;返回 通过这些字母构造成的 最长的回文串 。 … 算法沉淀——贪心算法四 01.最长回文串02.增减字符串匹配03.分发饼干04.最优除法 01.最长回文串 题目链接https://leetcode.cn/problems/longest-palindrome/ 给定一个包含大写字母和小写字母的字符串 s 返回 通过这些字母构造成的 最长的回文串 。 在构造过程中请注意 区分大小写 。比如 Aa 不能当做一个回文字符串。 示例 1: 输入:s abccccdd 输出:7 解释: 我们可以构造的最长的回文串是dccaccd, 它的长度是 7。示例 2: 输入:s a 输出:1示例 3 输入:s aaaaaccc 输出:7提示: 1 s.length 2000s 只由小写 和/或 大写英文字母组成 思路 首先我们想到如果某个字符出现偶数次那么它一定可以构成回文串所以我们利用这个思想将所有字符的偶数个都计入回文串的个数中若该个数不超过给出的字符串长度那么我们可以再加上任意字符即为最长的回文字符串。 代码 class Solution { public:int longestPalindrome(string s) {int hash[128];int ret0;for(auto ch:s) hash[ch];for(auto c:hash) retc/2*2;return rets.size()?ret1:ret; } };02.增减字符串匹配 题目链接https://leetcode.cn/problems/di-string-match/ 由范围 [0,n] 内所有整数组成的 n 1 个整数的排列序列可以表示为长度为 n 的字符串 s 其中: 如果 perm[i] perm[i 1] 那么 s[i] I如果 perm[i] perm[i 1] 那么 s[i] D 给定一个字符串 s 重构排列 perm 并返回它。如果有多个有效排列perm则返回其中 任何一个 。 示例 1 输入s IDID 输出[0,4,1,3,2]示例 2 输入s III 输出[0,1,2,3]示例 3 输入s DDI 输出[3,2,0,1]提示 1 s.length 105s 只包含字符 I 或 D 思路 当遇到字符I时为了让上升的数有更多选择空间我们可以选择当前可选择最小的那个数反之选择最大的数。 代码 class Solution { public:vectorint diStringMatch(string s) {int ns.size();int left0,rightn;vectorint ret;for(int i0;in;i){if(s[i]I) ret.push_back(left);else ret.push_back(right--);}ret.push_back(left);return ret;} };03.分发饼干 题目链接https://leetcode.cn/problems/assign-cookies/ 假设你是一位很棒的家长想要给你的孩子们一些小饼干。但是每个孩子最多只能给一块饼干。 对每个孩子 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.提示 1 g.length 3 * 1040 s.length 3 * 1041 g[i], s[j] 231 - 1 思路 我们使用最小匹配的方式将两个数组进行排序找到每一个刚好能够逐个满足小孩的饼干直至饼干消耗完结束。 代码 class Solution { public:int findContentChildren(vectorint g, vectorint s) {sort(g.begin(),g.end());sort(s.begin(),s.end());int ret0,mg.size(),ns.size();for(int i0,j0;imjn;i,j){while(jns[j]g[i]) j;if(jn) ret;}return ret;} };04.最优除法 题目链接https://leetcode.cn/problems/optimal-division/ 给定一正整数数组 numsnums 中的相邻整数将进行浮点除法。例如 [2,3,4] - 2 / 3 / 4 。 例如nums [2,3,4]我们将求表达式的值 2/3/4。 但是你可以在任意位置添加任意数目的括号来改变算数的优先级。你需要找出怎么添加括号以便计算后的表达式的值为最大值。 以字符串格式返回具有最大值的对应表达式。 **注意**你的表达式不应该包含多余的括号。 示例 1 输入: [1000,100,10,2] 输出: 1000/(100/10/2) 解释: 1000/(100/10/2) 1000/((100/10)/2) 200 但是以下加粗的括号 1000/((100/10)/2) 是冗余的 因为他们并不影响操作的优先级所以你需要返回 1000/(100/10/2)。其他用例: 1000/(100/10)/2 50 1000/(100/(10/2)) 50 1000/100/10/2 0.5 1000/100/(10/2) 2示例 2: 输入: nums [2,3,4] 输出: 2/(3/4) 解释: (2/(3/4)) 8/3 2.667 可以看出在尝试了所有的可能性之后我们无法得到一个结果大于 2.667 的表达式。说明: 1 nums.length 102 nums[i] 1000对于给定的输入只有一种最优除法。 思路 我们可以通过例子发现前两个位置的数无法被改变在这道题中为了让结果最大我们应将第二个位置之后的数都变成分子所以我们只需要将括号加在第二位至最后一位即可得出最大数。 代码 class Solution { public:string optimalDivision(vectorint nums) {int nnums.size();string ret;if(n1) return to_string(nums[0]);else if(n2) return to_string(nums[0])/to_string(nums[1]);else{retto_string(nums[0])/(to_string(nums[1]);for(int i2;in;i) ret(/to_string(nums[i]));}ret);return ret;} };
http://www.pierceye.com/news/315694/

相关文章:

  • 公司产品网站应该怎么做页面模板第三方应用
  • 绍兴网站建设网站站长 网站对比
  • 廊坊哪里做网站好费用
  • 织梦建站教程wordpress支持mysqli
  • 松江醉白池网站建设投资公司设立条件
  • 杭州网络seo优化知识
  • 对网站的建议和优化网银汇款企业做网站用途写什么
  • 商务网站的功能和建设制作外贸网站模板
  • 如何防止网站挂黑链怎么购买国外的域名
  • 企业官方网站地址怎么填微信页面设计网站
  • 国外购物网站有哪些郑州网站搜索排名
  • seo网站优化推广费用装饰行业网站建设
  • idea的网站开发登录页面做网页的
  • 寻找大连网站建设wordpress换模板 seo
  • 二手房公司网站源码网站的维护步骤
  • 衡水企业网站建设公司wordpress 快速回复
  • 网站维护需要关闭网站么找哪些公司做网站
  • 阿里巴巴做轮播网站如何建设学校的微网站首页
  • 国内设计好的网站案例网店设计风格怎么写
  • 网站建设长沙创建网页需要多少钱
  • 南通电商网站建设网站背景怎么设置
  • 无锡网站托管aspnet通讯录网站开发
  • 卫计网站建设工作总结铜陵建设行业培训学校网站
  • 手机网站竞价网页界面设计遵循的原则
  • 徐州seo推广公司广州营销型网站优化
  • 小说网站首页模板安徽华力建设集团网站
  • 减肥网站如何做公司企业模板
  • 郑州网站建设搜q.479185700怎么在百度上推广自己的公司信息
  • 深圳住建设局官方网站大连在哪个省市
  • 吉林企业建站系统费用wordpress幻灯片加载很慢