栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Leetcode--刷题之被虐日记(5月3日)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Leetcode--刷题之被虐日记(5月3日)

写在前面:
博主主页:戳一戳,欢迎大佬指点!
博主秋秋:QQ:1477649017 欢迎志同道合的朋友一起加油喔
目标梦想:进大厂,立志成为一个牛掰的Java程序猿,虽然现在还是一个小菜鸟嘿嘿
-----------------------------谢谢你这么帅气美丽还给我点赞!比个心-----------------------------

Leetcode数组篇
  • 一,题目解读
  • 二,解法揭秘
    • 三指针遍历元素之和


一,题目解读

这个题的目标十分的明确,就是从数组nums里面,找到某三个数的和与我们给出的target目标相距最近(我们判定的标准就是差值的绝对值),最后要求我们返回这个和。


二,解法揭秘 三指针遍历元素之和
class Solution {
    public int threeSumClosest(int[] nums, int target) {
            int tail = nums.length - 1;
            int min = Integer.MAX_VALUE;
            int head = 0;
            int mid = 0;
            int result = 0;//用来保存那个符合要求的对应的和
            while(head + 1 < tail){
                while (head + 1 < tail) {//在一个固定的tail下,进行每一轮的遍历
                    int sum = 0;
                    mid = head + 1;//mid之夹在head与tail之间的
                    for (int i = mid; i < tail; i++) {//去遍历head与tail之间的元素
                        sum = nums[head] + nums[tail] + nums[i];//因为此时head,tail都是固定的,去求和
                        if (Math.abs(sum - target) < min) {//找出与target相距最近的那个sum
                            min = Math.abs(sum - target);
                            result = sum;
                        }
                        
                    }
                    head++;//head加1,继续遍历
                }
                tail--;//在固定tail转完一轮以后,tail减1
                head = 0;//新的一轮head重新初始化为0
                mid = 0;//新的一轮mid重新初始化为0
            }
            return result;
    }
}

解析:

这个解法是我自己的解法,不是官方的标答,但是大体的思路差不多。原理上很简单,就是利用三个下标变量,类似于指针,然后去遍历元素,如下图:

主体部分是一个嵌套的循环,用来控制轮数,在每一轮中,tail尾指针都是不变的,head,mid去遍历元素,加上尾指针的元素,就一共有三个数,然后求出这个和,去比较找到与target相距最近的。在每一轮里面,head不断自增,在每一轮完成后,tail自减,head,mid重新初始化为0,又重复上面相同的工作,直至head与tail之间都没有元素的时候,整个循环结束。


图示:


今天的刷题小日记到这里就结束了,如果大家觉得还行的话,还请帮忙点点赞咯,十分感谢!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853921.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号