高并发&高性能 Go语言开发企业级抽奖项目

const 课程地址 =  " http://icourse8.com/gocjxt.html ";

章节信息

第1章 课程介绍【预备,初识】   

第2章 6种抽奖活动来一遍【伸展运动,舒缓热身】   

第3章 系统设计和架构设计【扩胸运动,有容乃大】   

第4章 项目框架与核心代码【踢腿运动,固若磐石】   

第5章 后台功能开发【体侧运动,运筹帷幄】   

第6章 基于mysql的抽奖功能开发【体转运动,基础版本】   

第7章 使用redis缓存优化【全身运动,升级版本】   

第8章 奖品池以及发奖计划的实现【跳跃运动,极致版本】   

第9章 完整性演示以及更多总结【整理运动,整体交付】   

第10章 引入thrift框架【附加运动,扩展服务】   

第11章 课程总结【结束,沉淀】

class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        Arrays.sort(nums);
        List<List<Integer>> ls = new ArrayList<>();
 
        for (int i = 0; i < nums.length - 2; i++) {
            if (i == 0 || (i > 0 && nums[i] != nums[i - 1])) {  // 跳过可能重复的答案
 
                int l = i + 1, r = nums.length - 1, sum = 0 - nums[i];
                while (l < r) {
                    if (nums[l] + nums[r] == sum) {
                        ls.add(Arrays.asList(nums[i], nums[l], nums[r]));
                        while (l < r && nums[l] == nums[l + 1]) l++;
                        while (l < r && nums[r] == nums[r - 1]) r--;
                        l++;
                        r--;
                    } else if (nums[l] + nums[r] < sum) {
                        while (l < r && nums[l] == nums[l + 1]) l++;   // 跳过重复值
                        l++;
                    } else {
                        while (l < r && nums[r] == nums[r - 1]) r--;
                        r--;
                    }
                }
            }
        }
        return ls;
    }
}

 

转载于:https://www.cnblogs.com/aiyiranzai/p/11079175.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值