LeeCode 26 - daily03

本文介绍了一种在原地删除已排序数组中重复元素的方法,使用快慢指针技巧实现,确保每个元素仅出现一次,并返回新数组长度。示例代码清晰展示了双指针算法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

无知者无畏

1. 题目

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

给定一个排序数组,你需要在 原地删除 重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

2. 解法:

这里采用 快慢指针 的做法:

个人见解:双指针更喜欢结合while循环使用,更直观让人看出双指针的本质。(PS: 不喜勿喷,因本人在刷题时有时候看for的双指针解法时大脑总的反应一下)

public int removeDuplicates(int[] nums){
		if(nums == null) return 0;
		
        if(nums.length < 2){
            return nums.length;
        }
		
		// 慢指针
        int low = 0 ;
        // 快指针
        int fast = 1;
        
        // 结束条件:当快指针遍历完
        while(fast < nums.length){
            if(nums[low] == nums[fast]){
                fast ++;
            }else{
                low ++;
                // 避免在相邻元素不相等时的原地复制
                if(fast - low >0){
               		nums[low] = nums[fast];
                }
                fast ++;
            }
        }
        return low+1;
    }

双指针解法是一种套路,遇到很多题时总能出奇制胜。


自古真情留不住,唯有套路得人心.

### 关于 CSL-Daily 的 GitHub 项目或文档 CSL-Daily 并未在所提供的引用中被直接提及。然而,可以通过分析相关内容推测其可能涉及的技术领域以及如何查找相关信息。 #### 技术背景概述 1. **ACSL 和 Frama-C 工具** ACSL(ANSI/ISO C Specification Language)是一种用于描述C程序行为的形式化规范语言[^1]。它通常与静态分析工具如 Frama-C 结合使用,以验证代码的正确性和安全性。这表明 CSL-Daily 如果存在,可能是与此类技术相关的项目或扩展功能的一部分。 2. **JSON 配置文件的支持** 提到 CustomSkinLoader 使用了 JSON 文件作为配置方式[^2]。如果 CSL-Daily 是类似的项目,则很可能也采用现代化的设计理念,例如通过 JSON 或其他结构化的数据格式来管理设置和参数。 3. **环境变量配置提示** 在某些开发环境中,需要手动调整 `LD_LIBRARY_PATH` 来加载动态链接库[^3]。这一操作对于依赖外部库运行的应用程序尤为重要。因此,若要安装或部署 CSL-Daily,需关注是否有类似的要求。 --- ### 如何定位 CSL-Daily 的官方资源? 尽管当前无法确认具体指向哪个项目的名称 “CSL-Daily”,以下是通用方法帮助找到目标: - #### 访问潜在开发者主页 假设该项目托管在一个公共平台上(比如GitHub),可以尝试搜索关键词组合 `"CSL-Daily site:github.com"` 或者查看贡献者的个人资料页面寻找关联仓库。 - #### 查阅相关社区讨论区 开源软件常伴随活跃用户群体交流心得体验;Stack Overflow、Reddit 等地方或许存留有关此主题线索。 - #### 浏览文档站点索引 官方维护的手册往往提供详尽指南介绍特性实现细节及其应用场景实例说明——即使暂时缺乏正式发布版本仍可获取初步印象。 下面给出一段 Python 脚本示范自动化查询过程: ```python import requests def search_github_repo(repo_name): url = f"https://api.github.com/search/repositories?q={repo_name}" response = requests.get(url) if response.status_code == 200: data = response.json() total_count = data['total_count'] if total_count > 0: first_result = data['items'][0] repo_url = first_result['html_url'] description = first_result['description'] return { 'url': repo_url, 'description': description } else: return None else: raise Exception(f"Failed to fetch results, status code {response.status_code}") result = search_github_repo('CSL-Daily') if result is not None: print(f"Found repository at {result['url']} with description '{result['description']}'") else: print("No matching repositories found.") ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值