精华内容
下载资源
问答
  • 这听起来类似于我刚刚完成的作业,所以如果... 正如您已经说过的那样,您必须从现有的ArrayList创建一个新的ArrayList . 您将从现有ArrayList中删除项目,存储偶数(或奇数)索引的整数,直到列表为空 .所以你的退出...

    这听起来类似于我刚刚完成的作业,所以如果它(并且你在我的 class !),我不会告诉你使用我们没有涉及的任何术语,因为我知道它可能是令人生畏的试图发现实用的新东西(超出我们的要求) .

    首先,设置退出条件 . 正如您已经说过的那样,您必须从现有的ArrayList中创建一个新的ArrayList . 您将从现有ArrayList中删除项目,存储偶数(或奇数)索引的整数,直到列表为空 .

    所以你的退出条件是:

    if (evenList is Empty)

    return evenList;

    然后,按照自己的方式完成各个步骤 . 我建议确定你开始使用的数组是否有一个奇数步数,如下所示:

    if (evenList has Even Elements)

    int holderForIntsAtEvenElements = last evenList EVEN element

    注意我们从最后一个元素开始,所以当你走出递归方法时,这将是添加到新ArrayList的最后一个,因此它将按数字顺序排列 . 您可能会发现这篇文章很有意思:What does this boolean return mean?

    然后,我们想要从列表中删除最后一个元素,并再次递归调用该方法 .

    最后,当我们达到退出条件并开始出现时,我们想要添加我们一直存储到它们的整数,例如:

    evenList.add(holderForIntsAtEvenElements);

    return evenList;

    这并没有解决一个问题,如果列表没有偶数个元素,那么如何处理第一个元素 - 但是,我会让你试着解决它!这是代码和伪代码的良好组合,有望帮助您走上正确的轨道 .

    展开全文
  • 思路: 遍历数组,把数组中元素保存到hashmap中, key是element的值,value是element出现的次数,保存之前check这element是否存在,若存在,则将其删除,并不再保存,若不存在,则保存。这样遍历完次之后,...

    如题, 快速找出数组中出现奇数次的元素。

     

    思路: 遍历数组,把数组中的元素保存到hashmap中, key是element的值,value是element出现的次数,保存之前check这个element是否存在,若存在,则将其删除,并不再保存,若不存在,则保存。这样遍历完一次之后,hashmap中保存的都是出现奇数次的元素。

     

    有时间再上代码。

    展开全文
  • 并且创建一个方法,该方法用于对数组的偶数元素进行删除,保留奇数元素。 代码如下(示例): import java.util.Collections; import java.util.Scanner; import java.util.ArrayList; public class Test1 { /**...

    记校招笔试大题

    题目:创建一个ArrayList数组,数组元素大小范围[0,1024],数组长度在50万之内。并且创建一个方法,该方法用于对数组中的偶数元素进行删除,保留奇数元素。

    代码如下(示例):

    import java.util.Collections;
    import java.util.Scanner;
    import java.util.ArrayList;
    
    public class Test1 {
    	/**
    	 * 方法TestArrayList是将传入的ArrayList数组的偶数元素进行删除,然后进行从大到小排序并输出。
    	 *
    	 * @param a 数组参数
    	 */
    	public void TestArrayList(ArrayList<Integer> a) {
    		//删除数组中偶数的元素(此处有陷阱,进行remove()方法删除元素时,必须倒序删除数组元素)
    		for(int i=0;i<a.size();i++){
    			if(a.get(i)%2==0)
    				a.remove(i--);
    		}
    		//进行数组从大到小排序
    		a.sort(Collections.reverseOrder()); //降序  
    		//a.sort(Comparator.naturalOrder()); //引用的是Comparator类,升序操作
    		System.out.println(a);
    
    	}
    
    	public static void main(String[] args) throws Exception {
    		Test1 t1 = new Test1();
    		Scanner sa = new Scanner(System.in);
    		ArrayList<Integer> arr = new ArrayList<Integer>();
    		System.out.println("请输入数字,数字间用逗号隔开!"); //输入提示
    
    		//1.获取用户输入的数字字符串
    		String numlist = sa.nextLine();
    		//2.将字符串通过分割字符串变成字符串数组
    		String[] slist = numlist.split(",");
    		//3.将字符串数组的元素转换类型后插入arr数组
    		for (String a1 : slist) {
    			int num2 = Integer.parseInt(a1);
    			//判断数字大小,范围是[0,1024]
    			if (num2 >= 0 && num2 <= 1024) {
    				arr.add(num2);
    			}
    
    		}
    		if (arr.size() > 500000) {
    			System.out.println("很抱歉!该数组长度不能超过500000个!");
    		} else {
    			//执行输出数组
    			t1.TestArrayList(arr);
    		}
    
    	}
    }
    
    

    总结

    这个博客没有啥技术含量,而且也不是最优化代码,如果有更好的代码请大佬们可以给我参考参考。
    加油!

    展开全文
  • 算法题:给你一个整形数组,要求删除其中一个元素,使得剩余元素的乘积最大。如何找到这个待删除元素? ​ 分析情况:当数组中有负数的情况 和 没有负数的情况 当数组中全是正整型的值 ,就取其中最小的值 当...

    算法题:给你一个整形数组,要求删除其中一个元素,使得剩余元素的乘积最大。如何找到这个待删除元素?

    ​ 分析情况:当数组中有负数的情况 和 没有负数的情况

    1. 当数组中全是正整型的值 ,就取其中最小的值

    2. 当数组中有负数的情况时候

      • 奇数个数的负数
        • 个数为负数,取最小的负数
      • 偶数个数的负数
        • 取正整数最小的值
    3. 代码实现

      思路: 判断数组中负数的个数

      ​ 1.如果数组中负数的个数是奇数,那么就移除,最大的负数

      ​ 2.如果数组中的负数的个数是全是偶数,那么就移除 最小的负数

      ​ 2-1. 部分是偶数 + 0 也 是 偶数,所以,即还是移除最小的正整数

    /**
         * 返回要删除的元素的下标
         *
         * @param nums
         * @return
         */
        public static int findRemoveIndex(int[] nums) {
    
            // 统计负数的个数
            int negativeCount = 0;
    
            for (int i = 0; i < nums.length; i++) {
                // 有负数就+1
                if (nums[i] < 0) {
                    negativeCount++;
                }
            }
    
            //根据不同的情况,选择要删除的元素
            int tempIndex = 0;
    
            if ((negativeCount & 1) == 1) {
                //情况1: 负数个数是奇数,就移除最大的负数
                for (int i = 0; i < nums.length; i++) {
    
                    if (nums[i] < 0) {
                        //解释: 因为是奇数个所以直接取值为负数的 num[i],减少判断
                        // 如果 tempIndex 即第一个值是整数,那么毫无疑问,就将当前的index,赋给temIndex
                        //  nums[i]当前的负数 与 temPindex的负数比较 最大的负数,就重新复制给tempIndex
                        if (nums[tempIndex] >= 0 || nums[i] > nums[tempIndex]) {
                            tempIndex = i;
                        }
    
                    }
    
                }
                return tempIndex;
            } else {
                //情况2: 负数个数是偶数
                if (nums.length == negativeCount) {
                    // 子情况,所以的元素都是负数
                    // 因为是偶数,所以,只需要找出 最小的值,
                    for (int i = 0; i < nums.length; i++) {
                        if (nums[i] < nums[tempIndex]) {
                            tempIndex = i;
                        }
                    }
                    return tempIndex;
                };
    
                // 部分是偶数是负数 或者 没有负数的情况
                for (int i = 0; i < nums.length; i++) {
    
                    if (nums[i] >= 0) {
    
                        if (nums[tempIndex] < 0 || nums[i] < nums[tempIndex]) {
                            tempIndex = i;
                        }
    
                    }
    
                }
                return tempIndex;
            }
        }
    

    3.1 测试方法

      /**
         * 测试下标的值
         */
        @Test
        public void testRemoveIndex(){
    
            int[] arrays1 = {12,-3,5,-6,7,8,-9,7}; // 应该移除 -3   
            int index = findRemoveIndex(arrays1);
            System.out.println("删除元素的下标:" + arrays1[index]);
    
            int[] arrays2 = {-12,-3,-5,-6,-7,-8,-9,8}; // 应该移除 -3
    
             index = findRemoveIndex(arrays2);
            System.out.println("删除元素的下标:" + arrays2[index]);
    
    
            int[] arrays3 = {-12,-3,-5,-6,7,8,9,3}; // 应该移除 3
    
             index = findRemoveIndex(arrays3);
            System.out.println("删除元素的下标:" + arrays3[index]);
    
    
        }
    

    3.2 运行结果

    在这里插入图片描述

    展开全文
  • 我们定义一个新的数组,存储旧数组中的偶数,同时删除数组中的偶数,当遍历完成旧数组时,所有的偶数都存储进新数组中,将新数组中元素都拼接再旧数组的末尾。 代码: public class Solution { public void ...
  • 思路:第一种方法:首先对数组进行遍历,先找出偶数元素,存储到另一个数组中,并把这个元素从原数组删除,当遍历完整个数组后,再把偶数的数组的每一个元素push_back到原来的数组中。 第二种方法:直接对数组中的...
  • 一个数组实现两个栈

    2016-04-11 21:19:39
    利用一个数组实现两个栈是数据结构的一道经典面试题,那么如何来求解呢?大多数人为了方便都采取了静态实现方式,但是这种方式不能进行扩容,不够完美。博主利用C++尝试了一下动态实现。首先,通过了解栈的特点...
  • 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 class ...
  • 给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1...
  • 32.请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如,若s所指字符串中的内容为ABCDEFGl...
  • 而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他以此类推。最后s所指的数组中的内容应是135。 请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
  • 因为数字只存在一次或者两次,所以可以定义一个ArrayList用于添加数组中元素,若元素已经在ArrayList存在,则在ArrayList删除元素,表示这个元素是出现两次的元素,遍历完成数组,最后在ArrayList中剩下的元素则...
  • 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数奇数,偶数和偶数之间的相对位置不变。 解法1: 整体思路就是每找到一个...
  • 假设 n 为奇数删除该下标元素后,根据元素下标删除后会自动回落的特型,下一个奇数既是n+1; 总感觉有点不对劲,有bug 的话麻烦大神指点一二 public class Test { //编写方法... 该方法仅保留数组a 下标为偶数 ...
  • 但是元素可以随机存取,因为数组中的每个元素都可以通过数组索引来识别。插入和删除时要移动后续元素,还要考虑扩容问题,插入慢。 数组与日常的业务开发联系非常紧密,如何巧妙的用好数组是我们能否开发出高质量...
  • 978. 最长湍流子数组 难度中等108 当A的子数组A[i], A[i+1], ..., A[j]满足下列条件时,我们称其为湍流子数组: 若i <= k <...也就是说,如果比较符号在子数组中的每相邻元素对之间翻...
  • * 练习题 输入一个矩阵A提取A的第2行第1列的元素提取A的第1,3,4列所有元素让A的第1列和第3列互换删除A的第1列 将矩阵A的第2行元素扩大2倍再增加3后作为A的第3行 求出数组x所有奇数的和与所有的偶数和 x=[8,3,5,-1,...
  • c++删除容器奇数

    2017-11-09 15:53:00
    出自 c++ primer(4th)282页,26题 题意 数组ia[]={0,1,1,2,3,5,8,13,21,55...使用单个迭代器参数版本的erase()函数将list容器奇数元素值删掉。 代码 #include <iostream> #include <list> using...
  • 初学者的shell数组

    2020-07-31 16:26:09
    (4)举例说明(快速创建数组、奇数数组)【3】shell数组的长度(1)数组元素、下标、长度之间的关系(2)数组长度的应用求出一个数组中的最大值【4】冒泡排序法(1)示意图解(2)举例说明(升序排列)【5】数组的...
  • shell脚本的数组一、数组的含义二、数组的分类三、数组的格式1、格式解读2、定义一个数组四、数组的操作1、读取数组和元素2、查看当前所有数组3、查看数组索引4、查看数组元素个数5、替换数组元素6、删除数组(1)...
  • 文章目录一、数组的含义二、数组的分类三、数组的格式1、格式解读2、定义一个数组四、数组的操作1、读取数组和元素2、查看当前所有数组3、查看数组索引4、查看数组元素个数5、替换数组元素6、删除数组五、数组脚本...
  • 遍历结束后数组 B只存放偶数元素,数组A只存放奇数元素,将两个数组拼接起来,得到结果。 (与之前遇到题相似, 由于数组长度在遍历过程会发生改变,因此用的是while循环而不是for循...
  • 现在,你需要实现一个栈,该栈要具有一个额外的操作:PeekMedian-返回栈所有元素的中值。 对于 N 个元素,如果 N 为偶数,则中值定义从小到大第 N/2 个元素;如果 N 为奇数,则中值定义为从小到大第 N+1/2个元素。...
  • 堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的...
  • 思路:首先排序,但是不能在原数组上面排序,需要复制一个数组进行排序,排完序之后,比如上面就是: 1 2 3 4 5 6 然后我们找到靠近中间的两个数:3(叫做min)和4(叫做max),然后,假如需要删除 1或者2,剩下的...
  • 堆栈是一种经典的后进先出的线性结构,相关的操作主要有“入栈”(在堆栈顶插入一个元素)和“出栈”(将栈顶元素返回并从堆栈中删除)。本题要求你实现另一个附加的操作:“取中值”——即返回所有堆栈中元素键值的...

空空如也

空空如也

1 2 3 4 5
收藏数 85
精华内容 34
关键字:

删除一个数组中奇数元素