zoukankan      html  css  js  c++  java
  • 【数据结构与算法】双指针——其它

    最接近的三数之和

    LeetCode:最接近的三数之和

    题目描述:

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

    示例:

    例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.
    
    与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
    
    

    思想:

    时间复杂度O(n^2),外层遍历数组,内层双指针首尾相向遍历,找出最合适的三数之和。

    代码:

    class Solution {
        public int threeSumClosest(int[] nums, int target) {
            Arrays.sort(nums);
            int twoTarget,low,high,sum=nums[0]+nums[1]+nums[2];
            for(int i=0;i<nums.length;++i){
                twoTarget = target - nums[i];
                high = nums.length-1;
                low = i+1;
                while(high>low){
                    sum = Math.abs(nums[i]+nums[low]+nums[high]-target)<Math.abs(sum-target)?(nums[i]+nums[low]+nums[high]):sum;
                    if(nums[low]+nums[high]<twoTarget){
                        ++low;
                    }else if(nums[low]+nums[high]>twoTarget){
                        --high;
                    }else{
                        return sum;
                    }
                }
            }
            return sum;
        }
    }
    

    通过删除字母匹配到字典里最长单词

    LeetCode:通过删除字母匹配到字典里最长单词

    题目描述:

    给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。

    示例:

    示例 1:
    
    输入:
    s = "abpcplea", d = ["ale","apple","monkey","plea"]
    
    输出: 
    "apple"
    
    示例 2:
    
    输入:
    s = "abpcplea", d = ["a","b","c"]
    
    输出: 
    "a"
    
    

    思想:

    第11行那个判断语句,不拿笔画一画,想破脑袋也写不出来

    代码:

    class Solution {
        public String findLongestWord(String s, List<String> d) {
            String res ="";
            for(int i=0;i<d.size();++i){
                String str = d.get(i);
                int pos=-1;
                for(int j=0;j<str.length();++j){
                    pos = s.indexOf(str.charAt(j),pos+1);
                    if(pos==-1) break;
                }
                if(pos==-1||str.length()<res.length()||str.length()==res.length()&&str.compareTo(res)>0)
                    continue;
                res=str;
            }
            return res;
        }
    }
    
  • 相关阅读:
    使用iText 7读取PDF文件中的文本和图片
    登记或取消登记盈亏库存日记账行数量
    uni-app(未完)
    javaScript的基本优雅写法
    ModuleFederation-模块联邦
    typescript
    img标签src图片路径根目录问题
    开源工具分享
    软件缺陷的度量、分析和统计
    MIT6.824 2020 Lab2 A Raft Leader Election
  • 原文地址:https://www.cnblogs.com/buptleida/p/12651786.html
Copyright © 2011-2022 走看看