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

网站制作的困难和解决方案seo研究中心

网站制作的困难和解决方案,seo研究中心,哪里有网站做爰视频,四川网站建设培训班目录 LeetCode 第14题:最长公共前缀 LeetCode 第15题:三数之和 LeetCode 第16题:最接近的三数之和 LeetCode 第14题:最长公共前缀 题目描述 编写一个函数来查找字符数组中的最长公共前缀。如果不存在公共前缀,返回字符…

目录

LeetCode 第14题:最长公共前缀

LeetCode 第15题:三数之和

LeetCode 第16题:最接近的三数之和

LeetCode 第14题:最长公共前缀

题目描述

编写一个函数来查找字符数组中的最长公共前缀。如果不存在公共前缀,返回字符串“”。

难度:简单

题目链接:14. 最长公共前缀 - 力扣(LeetCode)

示例1:

输入:strs = ["flower","flow","flight"]
输出:"fl"

 示例2:

输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。

提示:

  • 1<=strs.length<=200
  • 0<=strs[i].length<=200
  • strs[i]仅由小写英文字母组成

解题思路:逐位比较所有字符串的相同位置的字符。

public class Solution{public string LongestCommonPrefix(string[] strs){if(strs==null || strs.length==0)  return "";//获取最短字符串的长度int minLength = strs[0].Length;foreach(string str in strs)minLength = Math.min(minLength,str.Length);//逐位比较StringBuilder result = new StringBuilder();for(int i=0;i<minLength;i++){char currentChar = strs[0][i];//对比所有字符串的当前位置for(int j=1;j<strs.Length;j++){if(strs[j][i]!=currentChar)  return result.ToString();}result.Append(currentChar);}return result.ToString();}
}

LeetCode 第15题:三数之和

题目描述

给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[j]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。

难度:中等

题目链接:15. 三数之和 - 力扣(LeetCode)

示例1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

 示例2:

输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。

示例3:

输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

提示:

  • 3<=nums.length<=3000
  • -105<=nums[i]<=105

 解题思路:排序+双指针

  • 考虑到三元组的不重复性,对数组进行排序并去除重复数字。
  • 遍历数组,固定第一个数nums[i]:
  1. 如果nums[i]>0,因为数组已排序,后面不可能有三个数字之和为0
  2. 如果nums[i]和前一个数相同,跳过以避免重复
  • 使用双指针left和right在[i+1,n-1]范围内寻找和为-nums[i]的两个数
  • 根据三数之和与0的关系移动指针,找到答案时注意去重
  • 时间复杂度:O(n^2)、空间复杂度:O(1)(不考虑存储答案的空间)
//提前判断边界条件
public class Solution{public IList<IList<int>> ThreeSum(int[] nums){List<IList<int>> result = new List<IList<int>>();if(nums==null || nums.length<3)  return result;Array.Sort(nums);int n=nums.Length;//如果最小的三个数和大于0,或最大的三个数和小于0,直接返回if(nums[0]+nums[1]+nums[2]>0  || nums[n-1]+nums[n-2]+nums[n-3]<0)return result;for(int i=0;i<n-2;i++){if(nums[i]>0)  break;if(i>0 && nums[i]==nums[i-1])  continue;//计算当前数可能的最小和最大三数之和int minSum = nums[i]+nums[i+1]+nums[i+2];int maxSum = nums[i]+nums[n-2]+nums[n-1];if(minSum>0)   break;if(maxSum<0)   continue;int left = i+1;int right = n-1;while(left<right){int sum=nums[i]+nums[left]+nums[right];if(sum==0){result.Add(new List<int> {nums[i],nums[left],nums[right]});while(left<right && nums[left]==nums[left+1]) left++;while(left<right && nums[right]==nums[right-1]) right--;left++;right--;}else if(sum<0)  left++;else  right--;}} return result;}
}

LeetCode 第16题:最接近的三数之和

题目描述

给定一个长度为n的整数数组nums和一个目标值target。请你从nums中选出三个整数,使它们的和与target最接近。返回这三个数的和,假定每组输入只存在恰好一个解。

难度:中等

题目链接:16. 最接近的三数之和 - 力扣(LeetCode)

示例1:

输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。

 示例2:
 

输入:nums = [0,0,0], target = 1
输出:0
解释:与 target 最接近的和是 0(0 + 0 + 0 = 0)。

提示:

  • 3<=nums.length<=1000
  • -1000<nums[i]<=1000
  • -104<=target<=104

解题思路:同上(排序+双指针+剪枝)

public class Solution{public int ThreeSumClosest(int[] nums,int target){Array.Sort(nums);//对nums数组进行排序int n=nums.Length,closestSum=nums[0]+nums[1]+nums[2],largestSum=nums[n-1]+nums[n-2]+nums[n-3];//如果最小的三个数和大于target,直接返回if(closestSum>=target)  return closestSum;//如果最大的三个数和小于target,直接返回if(largestSum<=target)  return largestSum;for(int i=0;i<n-2;i++){//计算当前位置可能的最小三数之和int minSum=nums[i]+nums[i+1]+nums[i+2];//如果最小和已经大于target,后面的组合只会更大if(minSum>target)  return Math.Abs(minSum-target)<Math.Abs(closestSum-target)? minSum:closestSum;int left=i+1,right=n-1;while(left<right){int currentSum = nums[i]+nums[left]+nums[right];if(currentSum==target)  return currentSum;if(Math.Abs(currentSum-target)<Math.Abs(closestSum-target))closestSum=currentSum;if(currentSum<target) left++;else  right--;}}return closestSum;}
}

 

 

http://www.dtcms.com/wzjs/74609.html

相关文章:

  • 网站制作素材网站快速开发平台
  • 外贸客户搜索软件南京怎样优化关键词排名
  • 广州 网站 建设 制作宁波网站建设与维护
  • 免费学习做网站郑州seo外包v1
  • 武汉广告策划公司广州网站优化外包
  • 网站 可以做无形资产吗seo效果最好的是
  • 河北网站建设大全自媒体推广渠道
  • 星沙做网站关键词歌词打印
  • 常州做网站企业seo优化 搜 盈seo公司
  • 宝鸡建设网站百度一下官网首页下载
  • 如何用java做网站视频整合营销传播策略
  • 用angular做的网站链接长沙专业竞价优化公司
  • 北京网站制作抖音推广方案
  • 手机企业网站源码搜索关键词分析
  • 龙岩网站建设全包谷歌paypal官网入口
  • html css做一个漂亮的网页seo分析网站
  • 有人拉我做彩票网站网店seo是什么意思
  • asp网站后台管理系统模板东莞关键词排名seo
  • 可以做线路板网站的背景图腾讯新闻潍坊疫情
  • 阿里云腾讯云网站建设什么平台可以打广告做宣传
  • 公司的网站 优帮云网站seo优化多少钱
  • 最简单的手机网站制作媒体软文发布平台
  • 潍坊方圆网站建设seo网课培训
  • 河南省住房建设厅官方网站韩国热搜榜
  • 沈阳科技网站首页网络推广方案的内容
  • 什么是二级域名网站石家庄网络推广平台
  • 网站运营管理方案东莞网站建设工作
  • 营销技巧在线播放厦门seo测试
  • 三亚城乡建设局网站网站设计
  • 网站优化图片链接怎么做关键词优化seo外包