array题目合集

283. Move Zeroes

给定任意一个数组,把其中的0都移到该数组的末尾,其他的数字相对顺序要保持不变。例如:nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

思路:不是0的往前赋值,同时用一个下标纪录当前赋值的数量,最后从这个下标开始赋值0即可。

public class MoveZeroes {
    public void moveZeroes(int[] nums) {
        if (nums.length == 0) {
            return;
        }
        int start = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != 0) {
                nums[start++] = nums[i];
            }
        }
        for (int i = start; i < nums.length; i++) {
            nums[i] = 0;
        }
    }
}

27. Remove Element

给定一个数组和一个整数,去掉该数组中等于该整数的数,要求在原数组更改,同时返回数组的新长度。例如:

Given input array nums = [3,2,2,3]val = 3

Your function should return length = 2, with the first two elements of nums being 2.

思路:类似上题,还是同一个思路

public class RemoveElement {
    public int removeElement(int[] nums, int val) {
        int k = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val) {
                nums[k++] = nums[i];
            }
        }
        return k;
    }
}
时间: 2024-12-27 09:43:20

array题目合集的相关文章

二分图的一些题目合集

妈蛋状态都被狗吃了,已经开始不自觉对着电脑发呆……被几道二分图的题亮瞎了双眼(这么弱可是gdkoi只剩一个月gdoi只剩100+天……!!) wikioi1222信与信封问题 二分图,但是判断两个合集中的某两个点是不是只能连在一起.那么我们就在跑一边最大匹配后直接用是否可以增广来判断.如果可以增广那么这两个点是有其他方式连在一起的,否则这两个点就必须连在一起.具体做法是先去掉这两个点的边,不过那么match数组也要跟着改一下. var map:array[0..200,0..200]of boo

二叉树题目合集

104. Maximum Depth of Binary Tree 找到二叉树的最大深度. public class Solution { public int maxDepth(TreeNode root) { if (root == null) { return 0; } int l = maxDepth(root.left) + 1; int r = maxDepth(root.right) + 1; return l > r ? l : r; } } 111. Minimum Depth

最长上升子序列(LIS)题目合集

有关最长上升子序列的详细算法解释在http://www.cnblogs.com/denghaiquan/p/6679952.html 1)51nod 1134 一题裸的最长上升子序列,由于N<=50000,n2算法会超时,只能用nlogn算法. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <string

sizeof题目合集

32位机器上定义如下结构体: struct xx{    long long _x1;    char _x2;    int _x3;    char _x4[2];    static int _x5;};int xx::_x5; 1-8的地址分给了_x1 , 9分给了_x2, 13-16分给了_x3,  int要按4对齐所以10-13的空间其实是浪费了 17-18分给了_x4, _x5不占用空类间, 最后本身是需要按照8对其 所以19-24也被占用了

openjudge1.6 题目合集(08~15)

08-石头剪刀布 #include<iostream> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[10001]; int b[10001]; int now_a[100001]; int now_b[100001]; int ying_a; int ying_b; int ping; int m

函数易错题目合集

var f1 = function f2(){}; f1.name //"f2" var f1 = function f2(){}; f2.name //报错:f2 is not defined var f1 = function f2(){}: console.log(f2) //f2 is not defined(f2 不存在,而且 f2 不是 undefined) function f(){console.log(this)}: f.call(1) //Number 对象 1 f

知识类API调用的代码示例合集:驾考题库、ISBN书号查询、万年历查询等

以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 驾考题库:获取驾考题目与答案 ISBN书号查询:通过10位或13位ISBN查询书号信息,包含书名.作者.出版社.价格.出版日期.印次.装帧方式.语种.摘要等信息. 万年历查询:查询指定日期的星期.星座.农历.生肖.天干地支.岁次.黄历相关的福神.喜神.宜忌等信息,还可以进行阴阳历转换. 节假日查询:全年节假日查询 成语大全:包含发音.解释.出自典故.近义词.反义词

[题解+总结]动态规划大合集II

1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2.lis 最长上升子序列 唯一一道裸题,但是O(n^2)过不了,临时看了看O(n log n)的二分做法和线段树做法.先来讲讲简单的二分做法,其本质就是在O(n^2)上进行优化,需要证明一个结论.设当前处理数列第k位,存在: (1)a[i]<a[j]<a[k]: (2)i<j<k: (3

[知识点]NOIP动态规划大合集

1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NOIP2003 加分二叉树 树形DP入门题,根据题意,一个树的加分=左子树*右子树+根节点,由此可以设f[i][j]为子树i到j的加分,则有方程:f[i][j]=max{d[t]+f[i,t-1]*f[t+1,j]} ( t∈[i,j] ) 3.NOIP2004 合唱队形 应该是最简单的一道了,枚举队