力扣labuladong一刷day16天秒杀7道数组题

本文介绍了在力扣平台(LeetCode)上的一系列数组和链表相关题目,如删除有序数组重复项、排序链表去重、移除元素等,主要运用了快慢指针的方法。

力扣labuladong一刷day16天秒杀7道数组题

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

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/
思路:快慢指针,不等跟着走,相等停下等。

class Solution {
  public int removeDuplicates(int[] nums) {
        int k = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i] != nums[i-1]) {
                nums[k++] = nums[i];
            }
        }
        return k;
    }
}

二、83. 删除排序链表中的重复元素

题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-list/
思路:快慢指针,相等慢指针停下等,不等删除元素快慢指针各往前走一步。结尾处要记得让slow指向null,截断后面相等的元素。

class Solution {
  public ListNode deleteDuplicates(ListNode head) {
        if (head == null) return null;
        ListNode slow = head, fast = head;
        while (fast != null) {
            if (fast.val != slow.val) {
                slow.next = fast;
                slow = slow.next;
            }
            fast = fast.next;
        }
        slow.next = null;
        return head;
    }
}

三、27. 移除元素

题目链接:https://leetcode.cn/problems/remove-element/
思路:依然是快慢指针,相等时慢指针停下等,不等时覆盖元素同步走。

class Solution {
    public int removeElement(int[] nums, int val) {
        if (nums.length == 0) return 0;
        int k = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[k++] = nums[i];
            }
        }
        return k;
    }
    
}

四、283. 移动零

题目链接:https://leetcode.cn/problems/move-zeroes/
思路:所谓移动零,和前面的移除元素删除元素没有什么区别,大同小异,只不过是在移动完了以后,把末尾的数都覆盖为0.

class Solution {
   public void moveZeroes(int[] nums) {
        int slow = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nums[slow++] = nums[i];
            }
        }
        for (int i = slow; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
}

五、167. 两数之和 II - 输入有序数组

题目链接:https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/
思路:寻找a+b=target,只需要利用二分查找的思想,从数组的两端进行查找,a+b=target则返回,<则left++,>则right–。

class Solution {
  public int[] twoSum(int[] numbers, int target) {
        int left = 0, right = numbers.length-1;
        while (left < right) {
            int t = numbers[left] + numbers[right];
            if (t == target) {
                return new int[]{left+1, right+1};
            } else if (t < target) {
                left++;
            }else {
                right--;
            }
        }
        return new int[]{-1, -1};
    }
}

六、344. 反转字符串

题目链接:https://leetcode.cn/problems/reverse-string/
思路:翻转只需要使用左右双指针,两两替换即可。

class Solution {
   public void reverseString(char[] s) {
        int left = 0, right = s.length-1;
        while (left < right) {
            char temp = s[left];
            s[left] = s[right];
            s[right] = temp;
            left++;
            right--;
        }
    }
}

七、5. 最长回文子串

题目链接:https://leetcode.cn/problems/longest-palindromic-substring/
思路:如果是让判断是否是回文子串,只需要从两头进行逐个比较即可。
如果是让找回文子串,那就要从每一个点开始向两端扩散,但又考虑长度为奇数或者偶数的问题,扩散时也是以一个点和两个点为基础进行扩散的。

class Solution {
    public String longestPalindrome(String s) {
        String res = "";
        for (int i = 0; i < s.length(); i++) {
            String s1 = find(s, i, i);
            String s2 = find(s, i, i+1);
            res = res.length() > s1.length() ? res : s1;
            res = res.length() > s2.length() ? res : s2;
        }
        return res;
    }

    String find(String s, int i, int j) {
        while (i >= 0 && j < s.length()) {
            if (s.charAt(i) == s.charAt(j)) {
                i--;
                j++;
            }else {
                break;
            }
        }
        return s.substring(i+1, j);
    }
}
随着人工智能领域的持续进步,语音合成与模拟技术已取得显著突破,能够生成与真实人声高度相似的音频内容。这类技术在为日常生活带来便利的同时,也催生了诸多安全风险,例如利用伪造语音实施欺诈、冒用身份,或在金融交易、公共事务等关键领域造成重大损失。因此,开发套能够有效辨识合成语音与真实语音的检测机制,已成为当前技术应用中的项紧迫任务。本项目构建的基于人工智能的语音真伪鉴别系统,致力于在实际应用环境中实现对伪造语音的准确识别。系统依托深度学习算法,从输入的音频信号中提取关键声学特征,并通过频谱层面的分析,结合卷积神经网络(CNN)完成分类判别。具体实现流程包括以下环节:- 音频信号预处理:将原始语音转化为频谱图像,以满足神经网络对输入数据格式的要求;- 特征抽取与建模:采用梅尔频率倒谱系数(MFCC)等技术抽取语音特征,并利用CNN架构进行模型训练与分类;- 用户交互界面:提供便于操作的网页端接口,支持用户上传音频并获取真伪判定结果。该系统可在本地环境中部署,所使用的训练数据涵盖多类真实人声及通过文本转语音(TTS)或生成对抗网络(GAN)技术合成的伪造语音。在模型构建方面,项目选用Python作为主要编程语言,并集成TensorFlow与Keras等主流深度学习框架,具备良好的可扩展性与较高的识别准确度。资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当年拼却醉颜红

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值