news 2026/9/30 18:31:53

有序数组中的单一元素(二)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
有序数组中的单一元素(二)

解决方案

方法一:暴力法

我们可以使用线性搜索来检查数组中的每个元素,直到找到单个元素。

算法:

  • 从第一个元素开始,我们检查每个第二个元素是否与当前元素相同。如果不同,说明该元素是单个元素。
  • 如果我们到达最后一个元素,则它为单一元素。

Java 实现

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

Python 实现

def singleNonDuplicate(self, nums: List[int]) -> int: for i in range(0, len(nums) - 2, 2): if nums[i] != nums[i + 1]: return nums[i] return nums[-1]

C++ 实现

class Solution { public: int singleNonDuplicate(vector<int>& nums) { for (int i = 0; i < nums.size() - 1; i += 2) { if (nums[i] != nums[i + 1]) { return nums[i]; } } return nums.back(); } };

复杂度分析

时间复杂度:O(n)。我们的线性搜索只查看每个元素一次。

空间复杂度:O(1),只使用了常数的额外空间。

尽管这个解决方案可行,但是问题中要求我们使用时间复杂度在 O(log n) 的解决方案。因此,该解决方案还不够好。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 8:52:57

别再怪大模型了!RAG效果差,90%的问题出在这三个环节!

随着大模型在企业场景中的广泛应用&#xff0c;RAG&#xff08;检索增强生成&#xff09;已成为连接私有知识与智能问答的核心桥梁。然而&#xff0c;许多团队发现&#xff1a;即使使用顶尖大模型&#xff0c;RAG的回答仍常出现信息缺失、答非所问甚至“一本正经地胡说八道”。…

作者头像 李华
网站建设 2026/9/30 13:22:58

企业级应用:用HeyGem生成百条营销数字人短视频

企业级应用&#xff1a;用HeyGem生成百条营销数字人短视频 在短视频主导流量的时代&#xff0c;企业营销正面临一个尴尬的现实&#xff1a;内容需求呈指数级增长&#xff0c;而视频生产能力却还停留在“拍摄—剪辑—配音”的手工模式。一场新品发布需要几十个版本的宣传视频&a…

作者头像 李华
网站建设 2026/9/30 10:27:32

第三方CMA/CNAS双资质软件测试机构【Apifox中Mock.js集成指南】

Apifox和Mock.js的集成为接口测试和数据模拟提供了强大支持&#xff0c;主要通过三种方式实现&#xff1a;在接口字段中直接使用 占位符、在“高级 Mock”中结合Nunjucks模板生成复杂动态数据&#xff0c;以及通过JavaScript脚本实现完全思路控制。 Mock.js语法 在Apifox中应…

作者头像 李华
网站建设 2026/9/29 8:50:10

LangGraph 记忆存储的三重境界

随着大模型能力的提升和存储技术的发展&#xff0c;AI的记忆机制肯定会变得更加智能和高效。但无论如何变化&#xff0c;有一点是确定的——真正的智能&#xff0c;离不开良好的记忆管理。上周三下午&#xff0c;测试同学小王走到我工位前&#xff0c;指着屏幕上的聊天机器人说…

作者头像 李华