美文网首页
goleetcode

goleetcode

作者: voidFan | 来源:发表于2025-04-09 23:13 被阅读0次

    27. 移除元素

    func removeElement(nums []int, val int) int {
        for i:=0; i<len(nums);i++ {
            if nums[i] == val {
                nums = append(nums[:i], nums[i+1:]...)
                i--
            }
        }
        return len(nums)
    }
    

    26. 删除有序数组中的重复项

    func removeDuplicates(nums []int) int {
        if len(nums) == 0 {
            return 0
        }
        left := 1 // 用于计数
        for right := 1; right < len(nums); right++ {
            if nums[right] != nums[right-1] {
                nums[left] = nums[right] // 不相等时,要更新基准比较的值
                left++
            }
        }
        return left
    }
    // 出现两次的
    func removeDuplicates(nums []int) int {
        n := len(nums)
        if n <= 2 {
            return n
        }
        slow, fast := 2, 2
        for fast < n {
            if nums[slow - 2] != nums[fast] {
                nums[slow] = nums[fast]
                slow++
            }
            fast++
        }
        return slow
    }
    

    2843、对称整数的数目

    class Solution:
        def countSymmetricIntegers(self, low: int, high: int) -> int:
            res = 0
            for i in range(low, high + 1):
                s = str(i)
                n = len(s)
                if n < 2 or n % 2 == 1:
                    continue
                if sum(map(int, s[:n // 2])) == sum(map(int, s[n // 2:])):
                    res += 1
            return res
    
    

    3517、寻找最小回文子
    给你一个 回文 字符串 s。
    返回 s 的按字典序排列的 最小 回文排列。

    func smallestPalindrome(s string) string {
        n := len(s)
        t := []byte(s[:n/2])
        slices.Sort(t)
    
        ans := string(t)
        if n%2 > 0 {
            ans += string(s[n/2])
        }
        slices.Reverse(t)
        return ans + string(t)
    }
    

    2537统计好子数组的数量

    class Solution {
    public:
        long long countGood(vector<int>& nums, int k) {
            unordered_map<int,int> hash;
            int n = nums.size();
            long long ans=0;
            long long pairs=0;
            int left=0;
            for(int i=0;i<n;i++){
                if(hash.find(nums[i])!=hash.end()&&hash[nums[i]]!=0){
                    pairs+=hash[nums[i]];
                    hash[nums[i]]++;
                    while(pairs>=k){
                        ans+=(n-i);
                        pairs-=(--hash[nums[left++]]);
                    }
                }else hash[nums[i]]=1;
            }
            return ans;
        }
    };
    

    相关文章

      网友评论

          本文标题:goleetcode

          本文链接:https://www.haomeiwen.com/subject/fjyfbjtx.html