lintcode:Remove Element 删除元素
2024-08-26 01:26:42
题目:
给定一个数组和一个值,在原地删除与值相同的数字,返回新数组的长度。
元素的顺序可以改变,并且对新的数组不会有影响。
样例
给出一个数组 [0,4,4,0,0,2,4,4],和值 4
返回 4 并且4个元素的新数组为[0,0,0,2]
解题:
Java程序:
public class Solution {
/**
*@param A: A list of integers
*@param elem: An integer
*@return: The new length after remove
*/
public int removeElement(int[] A, int elem) {
// write your code here
int count = A.length;
// for(int i=0;i<count;i++)
int i=0;
while(i<count){
if(A[i]==elem){ for(int j=i;j<count-1;j++)
A[j] = A[j+1];
count--;
}else
i++;
}
return count;
}
}
总耗时: 1782 ms
这样竟然也可以通过,这里时间复杂度是O(n2),同时你会发现,只是把数组移位了,没有真正的删除,但是这里的测试结果是输出正确情况下的长度。。。。
还有个问题就是,测试用例太少了。。。。
官当答案也是这样搞的。。。
Python程序:
class Solution:
"""
@param A: A list of integers
@param elem: An integer
@return: The new length after remove
"""
def removeElement(self, A, elem):
# write your code here
i = 0
ALen = len(A)
while i<ALen:
if A[i]==elem:
ALen-=1
del A[i]
else:
i+=1
return ALen
总耗时: 286 ms
Python list 可以直接删除指定index下标的元素
最新文章
- 初学者看过来之JSON入门
- 实时监控log文件
- json-jsonConfig使用
- Java类加载器总结
- Swift - 简单封装一个工具类模板
- Maya 脚本控制物体自转
- Delphi 调用系统中的计算器、记事本、画图软件方法
- 二维数组在text,image的应用
- JAVA学习 分析Servlet
- Asp.NET路由管道处理过程 【重要】
- MYSQL数据库45道练习题
- 2018-02-03-jekyll框架下的post如何显示图片
- Java_监听文件夹或者文件是否有变动
- Windows上使用Vagrant打造Laravel Homestead可协同跨平台开发环境
- vue mandmobile ui实现三列列表的方法
- [转帖]UEFI和BIOS
- bzoj3672/luogu2305 购票 (运用点分治思想的树上cdq分治+斜率优化dp)
- WPF装饰元素
- npm与gulp的使用
- 自动化测试===adb 解锁手机的思路