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;
}
};