leetcode90子集II

leetcode90 Subsets II

Posted by BY on April 26, 2019

前言

新的一年,好好学习。

正文

问题来源

本问题来自leetcode上的90题。

问题描述

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

分析:

水题,秒切

func subsetsWithDup(nums []int) [][]int {
    if nil == nums {
        return nil
    }
    sort.Ints(nums)
    ret := append([][]int{}, []int{}, []int{nums[0]})
    l := len(nums)
    lastIndex := 1//减少判断i==0
    for i := 1; i < l; i++ {
        if nums[i-1] != nums[i] {
            lastIndex = 0
        } 
        lnum := len(ret)
        for j := lastIndex; j < lnum; j++ {
            temp := append([]int{}, ret[j]...)
            temp = append(temp, nums[i])
            ret = append(ret, temp)
        }
        lastIndex = lnum
    }
    return ret
}

总结:

勤思考。

结语

不管怎么样好好加油。