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

同样是div 怎么有些网站收录少 有些多软件开发工具具有哪些基本功能

同样是div 怎么有些网站收录少 有些多,软件开发工具具有哪些基本功能,大型企业名录查询,wordpress 女装小说新的解题思路 一、三数之和的多种可能 给定一个整数数组 arr &#xff0c;以及一个整数 target 作为目标值&#xff0c;返回满足 i < j < k 且 arr[i] arr[j] arr[k] target 的元组 i, j, k 的数量。 由于结果会非常大&#xff0c;请返回 109 7 的模。 输入&…

新的解题思路

一、三数之和的多种可能

给定一个整数数组 arr ,以及一个整数 target 作为目标值,返回满足 i < j < k 且 arr[i] + arr[j] + arr[k] == target 的元组 i, j, k 的数量

由于结果会非常大,请返回 109 + 7 的模。

输入:arr = [1,1,2,2,3,3,4,4,5,5], target = 8
输出:20
解释:
按值枚举(arr[i], arr[j], arr[k]):
(1, 2, 5) 出现 8 次;
(1, 3, 4) 出现 8 次;
(2, 2, 4) 出现 2 次;
(2, 3, 3) 出现 2 次。
思路:

使用一个for循环,固定起点。相向双指针比较复杂,因为会有相同的数的情况被忽略掉。

所以使用单指针+哈希表判断。for循环+单指针已经固定了两个数。只需要判断map中是否存在target-a-b.如果存在,res+=map.get(target-a-b); 然后把单指针指向的数字放进去。

代码:
class Solution {public int threeSumMulti(int[] arr, int target) {int res=0;for(int i=0;i<arr.length-2;i++){int num=arr[i];HashMap<Integer,Integer> map=new HashMap<>();int left=i+1;while(left<arr.length){int other=target-num-arr[left];res=(res+map.getOrDefault(other,0))%(int)(1e9+7);map.put(arr[left],map.getOrDefault(arr[left],0)+1);left++;}}return res;}
}

二、令牌放置

题意:

给定一个数组tokens[],里面装了下标为i的令牌的值,并且给定一个power,表示你的能量;

如果你的power>token[i]的,你可以利用power换取一个积分;

你也可以使用积分,去换取能量;你的目标是通过有策略地使用这些令牌以 最大化 总 分数

在使用 任意 数量的令牌后,返回我们可以得到的最大 分数 。

思路:

贪心策略:如果我们使用tokens[i]值小的令牌换取积分。然后用tokens[i]值大的换取能量。这样就可以使积分最大化。

1.首先进行排序

2.如果能量够的话,就换积分(这样是最划算的);能量不够的话,并且有积分,换取能量;其他情况就直接break(因为你的积分也不够,能量也不足以换取积分)

代码:
class Solution {public int bagOfTokensScore(int[] tokens, int power) {//贪心策略:如果能量够的话 就得分。不够的话 看看有没有分 换能量Arrays.sort(tokens);int res=0;int left=0;int right=tokens.length-1;int score=0;while(left<=right){if(power>=tokens[left]){score++;power-=tokens[left++];res=Math.max(res,score);}else if(score>0){score--;power+=tokens[right--];}else{break;}}return res;}
}

三、分割两个字符串得到回文串

题意:

给定两个子串a,b;在相同的下标位置切割子串得到,preA sufA; preB sufB。

看preA+sufB或者preB+sufA能否构成回文串。

思路:

  因为题目中要求是从相同的下标位置处切割。所以要找到能和b串后缀构成回文串的a串的最大前缀;(也就是图片中红色的位置)。

如果红色的位置越多,那么剩余部分判断回文串的长度就小了。

所以贪心的策略为:

1.尽可能多的去匹配a串前缀和b串的后缀

    public boolean checkPalindromeFormationHelp(String a,String b){int left=0;int right=b.length()-1;int len=0;while(left<right&&a.charAt(left)==b.charAt(right)){left++;right--;}return idPalindrome(a,left,right)||idPalindrome(b,left,right);}

2.然后看剩余的部分是否是回文子串。

    public boolean idPalindrome(String s, int left, int right) {while(left<right&&s.charAt(left)==s.charAt(right)){left++;right--;}return left>=right;}
代码:
class Solution {public boolean checkPalindromeFormation(String a, String b) {// a前b后或者a后b前return checkPalindromeFormationHelp(a, b) || checkPalindromeFormationHelp(b, a);}public boolean checkPalindromeFormationHelp(String a,String b){int left=0;int right=b.length()-1;int len=0;while(left<right&&a.charAt(left)==b.charAt(right)){left++;right--;}return idPalindrome(a,left,right)||idPalindrome(b,left,right);}public boolean idPalindrome(String s, int left, int right) {while(left<right&&s.charAt(left)==s.charAt(right)){left++;right--;}return left>=right;}
}
说明:

第一个函数中的||,是拿a还是b的前缀就行匹配。

第二个函数中的||,xxxxx

两个是不冲突的。

http://www.yayakq.cn/news/643172/

相关文章:

  • 网站搭建 主机推荐wordpress 页面重定向循环
  • 生产建设兵团第三师政务网站汕头企业网站建设服务
  • 网站建设的公司价格常州模板网站建设
  • 90后小姑娘做网站建一个在线商城网站
  • 商城开发网站四省网站建设
  • 织梦教育网站模板网站免费模版
  • 做网站要用编程吗wordpress官方模版
  • 网站系统建设管理制度做电影网站需要用什么空间
  • 简述jsp网站开发的环境配置网站策划方案案例
  • 工信部门备案网站获取的icp备案号如何查看vs中建设好的网站
  • 网站个别页面做seo直播系统开发
  • cdr 做网站申京效率值联盟第一
  • 我要用新浪云做网站青海项目信息网官网
  • 北京网站建设联系电话网站制作新技术
  • 关于电视剧的网站设计网页华夏星光工业设计公司
  • 宁波h5模板建站软件推广渠道
  • 公司网站制作价格注册一家公司需要多少费用
  • php网站开发前端设计师网页设计培训
  • 公司注册网上申报流程怎样做 网站做seo
  • 广东网站建设服务公司美术对网站开发有用吗
  • 农业网站设计怎么测网站流量吗
  • 基于jsp网站开发开题报告有学做美食的网站吗
  • 钉钉如何做自己的网站专业设计网站效果
  • 做网站的公司网络营销平台有哪些?
  • 网站怎么实现邮件验证苏州好的网络科技公司
  • 网站建设需要那些人才做公司网站都需要哪些东西
  • 自己怎么做新闻开头视频网站wordpress哪里查看id
  • 陕西省环保厅建设备案网站seo整站优化吧
  • 贵阳网站建设运营域名 空间 网站制作
  • 哪个网站能在线做司考题目东营网站建设费用