面试题:删除数组从下标数为i开始的j个元素
来源:互联网 发布:西里古里走廊知乎 编辑:程序博客网 时间:2024/04/28 04:16
方法一:
private static void deleteArrayItemOne(){
//删除数组从下标数为i开始的j个元素
int i =5,j=10 ;
int marray[] = new int[100];
for(int a = 0 ; a<100;a++){
marray[a]=a;
System.out.print(marray[a]+",");
}
System.out.println("");
int mArraym[] = new int[marray.length-j];
for(int b = 0 ; b < i;b++){
mArraym[b]=marray[b];
}
if(i+j<marray.length){
for(int c = i; c<mArraym.length;c++){
mArraym[c] = marray[c+j];
}
System.out.println(" ");
for(int d = 0; d<mArraym.length;d++){
System.out.print(mArraym[d]+",");
}
}
}
private static void deleteArrayItemOne(){
//删除数组从下标数为i开始的j个元素
int i =5,j=10 ;
int marray[] = new int[100];
for(int a = 0 ; a<100;a++){
marray[a]=a;
System.out.print(marray[a]+",");
}
System.out.println("");
int mArraym[] = new int[marray.length-j];
for(int b = 0 ; b < i;b++){
mArraym[b]=marray[b];
}
if(i+j<marray.length){
for(int c = i; c<mArraym.length;c++){
mArraym[c] = marray[c+j];
}
System.out.println(" ");
for(int d = 0; d<mArraym.length;d++){
System.out.print(mArraym[d]+",");
}
}
}
方法二:
private static int[] deleteArrayItem(int originArray[],int from,int count){
Integer mAray;
int result[] = new int[originArray.length-count];
ArrayList<Integer> mArray = new ArrayList<>();
for(int i = 0 ; i<originArray.length;i++){
mAray = Integer.valueOf(originArray[i]);
mArray.add(mAray);
System.out.print(mArray.get(i));
}
System.out.println(" ");
for(int i = 0 ; i<count;i++){
mArray.remove(from);
System.out.println(from+" "+i);
}
for(int i = 0 ; i<mArray.size();i++){
//System.out.print(mArray.get(i));
result[i]=mArray.get(i);
System.out.print(result[i]);
}
return result ;
}
总结一下:代码量略少,逻辑思路更清晰一些
注:最近在面试新的工作,上面是最近面试一家公司遇到算法编程题,当时想了好久,写出的答案不尽人意,所以之后又重新思考编写了一下答案,当然这可能不是最优的答案,但是结果能达到题意要求,希望看到的朋友不理赐教,可以留言更好的解法,谢谢。 0 0
- 面试题:删除数组从下标数为i开始的j个元素
- 从一给定的顺序表L中删除下标i--j(i<=j,包括i、j)的所有元素,假定i、j都是合法的
- 2.16-从la中删除从i开始len个元素后,把删除的元素放到lb中的j位之前
- 从链表A中删除从i开始的len个元素,同时粘贴到B链表的第j元素之前
- 算法.给定数为数组中2个元素的之和,求出数组的下标
- 删除数组中下标为n的元素
- 删除数组中下标为n的元素(2)
- 两数之和二 给定一个整形的数组,找出其中的两个数使其和为某个指定的值,并返回这两个数的下标(数组下标是从0开始)。假设数组元素的值各不相同,则要求时间复杂度O(n),n为数组的长度
- 面试题整理-从数组中删除指定元素
- 设计一个算法,删除一个顺序表中从第i个元素开始的k个元素。
- 试设计一个算法,删除一个顺序表从第i个元素开始的k个元素
- 面试题---数组中的元素相差为1,如何找到数t的位置
- [前端面试题]从字符串的第二个字母开始对数组排序
- 面试题:从1001个整数元素的数组中找出重复的数字
- 303. Range Sum Query - Immutable (计算数组中下标i,j之间元素值的和)
- 数组的下标从0开始
- C语言数组元素下标为何从0开始
- .输出数组中下标为3的数。和值为3的倍数的元素
- mysql-5.7.11-winx64.zip的解压缩安装
- JavaScript内存管理机制
- android 常用的数据库语句
- Android 获得一个应用的权限
- 项目4-用循环求
- 面试题:删除数组从下标数为i开始的j个元素
- 宣布“主权”
- 谷歌百度必会的搜索小技巧
- top list的使用
- 如何在SharePoint 2010中搭建Form-Based Authentication?
- 分布式视频编解码学习——量化(20160308)
- POJ 2533
- 受限玻尔兹曼机准备知识——MCMC方法和Gibbs采样
- LightOJ 1245 - Harmonic Number (II) (求n/1+n/2+n/2+....+n/n)