1.Two Sum

leetcode第一题
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1]

最初是的遍历两次,把两个相同的值进行去比较获得答案,可以通过速度较慢。

//一开始的个人做法

class Solution {
    public int[] twoSum(int[] nums, int target) {

        for(int i; i < nums.length-1; i++){
            for(int j = i+1; j< nums.length; j++){
                if(nums[i] + nums[j] == target){
                    return new int [] {i,j};
                   } 
            }
        }
        return null;
    }
}

 

第二个使用的错误的方法,例题是对的,必须是从小到大排序,如果是乱序的话使用Arrays.sort();方法结果也是和题目不符。

但这个效率也比第一个高。

class Solution {
    public int[] twoSum(int[] nums, int target) {

        int i = 0;
        int j = nums.length-1;

        while(i < j){
        
        int sum = nums[i] + nums[j];
        if(sum == target){
            return new int [] {i,j};
            }else if(sum < target){
                i++;
            }else{
                j--;
            }
        }

        return null;
    }
}

最后是leetcode中的讨论区的答案 

数组为[2, 7, 11, 15]

第一次存入的map是(7,0)

第二次发现有7的key值,此时result[0] = map.get(cur) (此时map.get(cur) ==0) 

result[1] = 1;

class Solution {
    public int[] twoSum(int[] nums, int target) {

        //先创建一个容量为2的数组
        int [] result = new int [2];
        Map<Integer,Integer> = new HashMap<>();
        for(int i = 0; i < nums.length-1; i++){
            int cur = nums[i];
            //这里搞出来个差值,其实差值是在没找到之后添加到map里面的。
            int toFind = target - cur;
            //如果发现之前需要这个差值,那就找index。
            if(map.containsKey(cur)){
                result[0] = map.get(cur);  //获取当前的value值 所以此时的value =0;
                result[1] = i;             // i = 1;
                return result;
            }
            //如果没有,就put到map里面
            else{
                map.put(toFind, i);  //第一次的value -> i=0;
            }
        }
        return null;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本项目是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。该系统主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的Java学习者,包含项目源码、数据库脚本、项目说明等,有论文参考,可以直接作为毕设使用。 后台框架采用SpringBoot,数据库使用MySQL,开发环境为JDK、IDEA、Tomcat。项目经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。 该系统的功能主要包括商品管理、订单管理、用户管理等模块。在商品管理模块中,可以添加、修改、删除商品信息;在订单管理模块中,可以查看订单详情、处理订单状态;在用户管理模块中,可以注册、登录、修改个人信息等。此外,系统还提供了数据统计功能,可以对销售数据进行统计和分析。 技术实现方面,前端采用Vue框架进行开发,后端使用SpringBoot框架搭建服务端应用。数据库采用MySQL进行数据存储和管理。整个系统通过前后端分离的方式实现,提高了系统的可维护性和可扩展性。同时,系统还采用了一些流行的技术和工具,如MyBatis、JPA等进行数据访问和操作,以及Maven进行项目管理和构建。 总之,本系统是一个基于SpringBoot开发的华府便利店信息管理系统,使用了Vue和MySQL作为前端框架和数据库。系统经过严格调试,确保可以运行。如果基础还行,可以在代码基础之上进行改动以实现更多功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值