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

做网站目录网络推广平台网站推广

做网站目录,网络推广平台网站推广,专业做食材网站,二道网站建设双指针 同种思路的相向双指针方法 有序数组的平方 做到 O(n) 找到 K 个最接近的元素 数组中的 K 个最强值 用双指针解决 两数之和 II - 输入有序数组 平方数之和 统计和小于目标的下标对数目 采购方案 同 2824 题 三数之和https://leetcode.cn/problems/3sum/description/ 最…

双指针

同种思路的相向双指针方法

有序数组的平方 做到 O(n)
找到 K 个最接近的元素
数组中的 K 个最强值 用双指针解决
两数之和 II - 输入有序数组
平方数之和
统计和小于目标的下标对数目
采购方案 同 2824 题
三数之和https://leetcode.cn/problems/3sum/description/
最接近的三数之和
四数之和https://leetcode.cn/problems/4sum/description/
有效三角形的个数
数的平方等于两数乘积的方法数 用双指针实现
三数之和的多种可能 1711

1, 四数之和
排序 + 双指针方法。 实现On3时间复杂度
思路:
穷举第一个数
再穷举第二个数
剩下两个数就转为了使用相向双指针寻找恰好让四个数和为target的方法

class Solution {public List<List<Integer>> fourSum(int[] nums, int target) {Arrays.sort(nums);List<List<Integer>> ans = new ArrayList<>();int n = nums.length;for(int i = 0; i < n - 3; ++i){long outi = nums[i];if(i > 0 && outi == nums[i - 1]) continue;for(int j = i + 1; j < n - 2; ++j){long outj = nums[j];//这里用例中虽然溢出了,不担心int强转溢出问题是因为这个用例刚好没有符合条件的组合if(j > i + 1 &&outj== nums[j - 1]) continue;int left = j + 1;int right =  n - 1;while(left < right){long sum = outi + outj + nums[left] + nums[right];if(sum > target){-- right;}else if(sum < target){++ left;}else{ans.add(List.of((int)outi,(int)outj,nums[left],nums[right]));for(left++; left < right && nums[left] == nums[left - 1]; ++ left);for(right --; left < right && nums[right] == nums[right + 1]; -- right);}}}}return ans;}
}

木桶原理

1,盛最多水的容器
https://leetcode.cn/problems/container-with-most-water/description/

class Solution {public int maxArea(int[] height) {//这个题就是移动短边//从题意上,假设以第一个数为左侧边,然后应该穷举右侧边直到最后一个数//然后再假设以第二个数为左侧边,穷举右侧边直到最后一个数。//依次类推,暴力。On2//但是双指针可以实现On的复杂度,同时借助left和right只移动短边//就代表它所匹配的另一侧的长边,当前的面积是最大值。//例如:1,8,6,2,5,4,8,3,7//第一次left的1最短,因为right-left已经是最大,1不管匹配对侧的长边//包括8,6,2,5,4,8,3这些都不用再遍历了,因为1和7对应的right-left最大//此时面积就是这些中最大的int left = 0;int right = height.length - 1;int ans = 0;while(left < right){int area = (right - left) * Math.min(height[left], height[right]);ans = Math.max(ans, area);if(height[left] < height[right]){++ left;}else{-- right;}}return ans;}
}

2,接雨水
https://leetcode.cn/problems/trapping-rain-water/

class Solution {public int trap(int[] height) {//应该把数组每一个位置当作一个桶,这个桶由左侧和右侧组成//而当前的数值大小,可以认为是在这个桶上填满了heigth[i]的石头//这个桶剩余的大小才是雨水的。//而这个桶的大小取决于左侧边,右侧边中较小的那个,短板//而left和right两个桶,根据lmax和rmax的大小比较,优先计算已经确定较小边的那个//例如:对于8,0,10,6这个序列。//left对应的8已经确定左侧边最小是8,但是它的右侧边此时只知道最小是6,在8到6中间数组数据中有没有比6更大的,不确定//而right对应的6右侧最小边是确定的了,但是左侧边不确定,现在只知道至少有个8了。但是有这个8就够了,因为即使8和6之间有一个10,但是桶取决于最小边6. 那如果有一个比6 更小的呢,例如3,那这个不影响当前的right这个桶啊,因为这个桶右侧必然是6了,同时左侧已经确定至少有一个8了,3即使比6小,但他不可能作为当前这个right这个桶两个边。int left = 0;int right = height.length - 1;int lmax = 0;int rmax = 0;int ans = 0;while(left <= right){lmax = Math.max(lmax, height[left]);rmax = Math.max(rmax, height[right]);if(lmax <= rmax){ans += lmax - height[left];++ left;}else{ans += rmax - height[right];-- right;}}return ans;}
}
http://www.dtcms.com/wzjs/139819.html

相关文章:

  • 临沂做网站公司西安seo服务公司排名
  • 做优化的网站电话如何查看百度搜索指数
  • 定制柜设计网站网络营销考试答案
  • 茂名做网站的公司学生没钱怎么开网店
  • 医院设计网站建设宁波seo整站优化软件
  • 开发公司申请办理公共维修资金申请书站长工具seo综合查询下载
  • 中国做网站公司排名全国今日新增疫情
  • 宁波室内设计公司排名湖南seo服务
  • 汽配出口做哪个网站好网站推广具体内容
  • 公司的网站建设价格低服务营销的概念
  • 政务公开既网站信息化建设会议关键词优化软件
  • 怎么创建自己的小程序商城如何点击优化神马关键词排名
  • 如何取一个大气的名字的做网站行业关键词词库
  • wordpress 采集 发布孔宇seo
  • 做的网站浏览器提示不安全问题营销咨询公司排名
  • 企业限制访问网站关键词有几种类型
  • 哪个网站做批发最便宜吗中视频自媒体平台注册官网
  • 如何制作自己的网站 可放广告seo的方式有哪些
  • 税务门户网站建设成果昆明优化网站公司
  • 青岛网站设计皆挺青岛重庆seo排
  • 中国网站网络推广的平台
  • 龙口建网站价格html网页制作网站
  • 十大个人博客网站网站建成后应该如何推广
  • 网站制作建设公司哪家好网页制作官方网站
  • 做APP必须要有网站么百度搜索引擎的网址是多少
  • 做网站图片分辨率seo外包服务公司
  • 在线股票交易网站开发服务营销理论
  • 徐州市工程招标网百度小程序关键词优化
  • 深圳做互联网教网站公司全球网站流量排名查询
  • 贵阳网站开发哪家好百度网站站长工具