可以做任务挣钱的网站建筑公司分公司

张小明 2026/1/11 4:28:25
可以做任务挣钱的网站,建筑公司分公司,抽奖机网站怎么做的,企业视频网站模板面试经典150题之移除元素 一、题目 1.题目描述 给你一个数组 nums 和一个值 val#xff0c;你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k#xff0c;要通过此题你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。假设 nums 中不等于 val 的元素数量为 k要通过此题您需要执行以下操作更改 nums 数组使 nums 的前 k 个元素包含不等于 val 的元素。nums 的其余元素和 nums 的大小并不重要。返回 k。2.题目分析这是一道移除数组中元素的题目我们需要做到原地移除但是题目说了不会去管超过我们返回给它的值之后的数字因此我们有两种思路一种是直接将所有等于val的数字全部都移动到第k个数之后并且这种方法是基于交换的即整个数组包含的数是没有变的另一种是将所有不等于val的数直接排到前K个而不管k之后是否有不等于val的数。下面我将介绍4种方法并且对我踩的一些坑也简要的说明。二、具体方法1.直接用remove函数解决whilevalinnums:nums.remove(val)returnlen(nums)由于remove函数能够直接删去列表中第一个匹配的值因此直接适用能够删去列表中所有等于val的值。这种方法相对简单但是前提是我们要知道remove函数的用法。2.新列表承接再替换num_true[iforiinnumsifi!val]foriinrange(len(num_true)):nums[i]num_true[i]returnlen(num_true)我们可以用一个全新的列表来讲数组中所有的符合要求的值全部都记录下来然后再讲这个新的列表的值按顺序插入到原来的列表中去。这种方法也很简单不太符合题目的要求因为题目要求原地排序不过在日常我们自己的代码中需要的时候可以使用。下面我将介绍两种相对来说比较有意思的方法3.以栈的思维来看数组defremoveElement(self,nums,val): :type nums: List[int] :type val: int :rtype: int stack_size0forxinnums:ifx!val:nums[stack_size]x stack_size1returnstack_size我们将nums数组看做一个栈在我们没有看这个数组之前我们没有确定栈里面的任意一个元素因此初始的栈的大小为0。然后我们遍历数组的元素如果这个元素不为val我们就把这个数组压入栈中并且将栈的大小也进行相应的调整。最后我们返回栈的大小。4.双指针置换法defremoveElement(self,nums,val): :type nums: List[int] :type val: int :rtype: int left0rightlen(nums)-1whileleftright:if(nums[left]val)and(nums[right]!val):tempnums[right]nums[right]nums[left]nums[left]temp left1right-1elif(nums[right]val):right-1else:left1returnleft这个方法的核心思路就是要设立两个指针一个一开始指向最左端一个刚开始指向最右端。然后将所有为val的值都移到数组的右边。如果左指针指向的值为val且有指针指向的值不为val的话我们就将左指针指向的值和有指针指向的值交换并且左指针右移右指针左移。不论左指针是否为val只要右指针为val就将右指针左移。这里我们可以具体的解释一下如果左指针指向的数不为val且右指针指向的值为val的话当前右指针指向的位置已经为val了所以我们要往前找到不是val的进行再进行操作。如果左右都是我们可以通过移动右指针来转换为第一种情况最后一种情况也就是左指针指向的不是并且右指针指向的也不是那么我们将左指针向右移动即可右指针不需要一定因为右指针指向的人这个地方还可以换成val但是现在没有换最后结束的条件就是左指针比右指针大了返回值就为左指针的数值。三、我踩的坑我一开始些的代码是下面这样的defremoveElement(self,nums,val): :type nums: List[int] :type val: int :rtype: int foriinnums:ifival:nums.remove(i)returnlen(nums)乍一看我的这个代码和前面的第一种方法的代码很像但是为什么我这样些就不行呢因为for i in nums 循环是基于列表迭代器实现的迭代器会按顺序读取列表的索引0→1→2→…。在循环中执行 nums.remove(i) 时列表长度变短、元素前移迭代器的指针会跳过部分元素导致漏删。后面我又尝试用for i in range (len(nums)):进行迭代 但是这样也是错的一旦在某次循环中又元素删除的话那么len(nums)就会随着改变会出现和上面一样的问题。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设合并但与那个wordpress 更新页面

Mac OS X 开发中的框架与编译要点 1. 框架概述 在 Mac OS X 系统中, /System/Library/Frameworks 是苹果提供的框架存放位置,这些框架的共享库可供系统上的所有应用程序使用。该目录下有三种类型的框架: - 简单公共框架 :苹果将既不是子框架也不是伞形框架的框架定义…

张小明 2026/1/10 2:21:18 网站建设

玉溪做网站公司企业网站建设 论文

你知道吗?每天在碧蓝航线中重复点击的时间,累计起来可能已经足够你读完一本好书或学习一项新技能了。早上起床第一件事是收委托,午休时要记得收科研,晚上睡前还要检查大世界进度...这样的生活是否让你感到疲惫? 【免费…

张小明 2026/1/10 2:33:23 网站建设

自己怎么做优惠搜网站建设部网站核对编号

百度网盘资源链接解析完全手册:提取码自动获取与高效解析技巧 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 在数字化资源获取过程中,资源链接解析和提取码自动获取已成为提升工作效率的关键技术。面对…

张小明 2026/1/10 3:59:42 网站建设

毕业设计做企业门户网站wordpress主题繁体

RS485/232串口调试助手终极解决方案 【免费下载链接】RS485232串口调试助手 本仓库提供了一个名为“RS485/232串口调试助手.zip”的资源文件下载。该文件是一个串口调试工具,适用于RS485和RS232串口设备的调试和测试。 项目地址: https://gitcode.com/open-source…

张小明 2026/1/10 4:04:32 网站建设

网站建设工具的种类wordpress底部版权信息

想要永久保存B站上的精彩内容吗?BiliDownloader作为一款界面简洁、操作便捷的B站视频下载工具,让你轻松掌握离线保存视频的全部技巧。无论是珍贵的教学资源、难忘的回忆片段,还是想要随时观看的娱乐内容,这款工具都能完美满足你的…

张小明 2026/1/10 4:24:41 网站建设

残疾人无障碍网站怎么做wordpress网站地图插件

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个AI小说插件,支持以下功能:1. 根据关键词自动生成小说情节大纲;2. 提供角色设定模板,包括姓名、性格、背景等;3. …

张小明 2026/1/10 4:41:07 网站建设