1.3.1-数组

找出数组中出现次数超过数组长度一半(>=1/2 >1/3)的那个数 先讨论超过数组长度一半的情况 超过数组长度一半意味着这个数字的个数大于其他全部数字个数之和,算法大致为,首先设置两个参数currentAxis,currentNum。参数currentAxis用来记录当前认为是我们要找的那个数字,参数currentNum用来记录CurrentAxis参数对应的那个数字连续出现的次数。步骤如下: (1)初始化:设当前的数组为data[],数组的长度为n。curr 阅读详情

本文是1.3.1-数组学习笔记

数组的概念

数组是由同一类型的对象或者基本数据组成,并封装在同一个标识符(数组名称)下。
数组是对象

  • 动态初始化
  • 可以赋值给Object类型的变量
  • 在数组中可以调用类Object的所有方法
  • 每个数组都由一个public final 修饰的成员变量:length,即数组含元素的个数(length可以是正数或零)

数组元素
- 数组中变量被称作数组元素
- 元素没有名字,通过数组名字和非负数访问数组元素
数组的创建和使用
数组的引用声明:声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间;不能直接使用,必须经过初始化内存后才能使用。
数组声明举例:

Type[] arrayName
int[] intArray;
String[]stringArray;
Type ArrayName[]; 
Type arrayName[];

数组的创建

  • 用关键字 new 构成数组的创建表达式,可以指定数组的类型和数组元素个数。元素可以是 常量也可以是变量。
  • 基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象的引用。
    数组的创建举例:
arryName = new Type[componets number];
例如:
int ai;ai = new int[10];
String []s = new String[3];
或者可以将数组中的声明和创建一并执行
int ai[]= new int[10];
可以在一条声明语句中创建多个数组
String []s1 = new String[],s2= new String[8];

数组元素的初始化

  • 声明数组时,给出了数组的初始值,程序便利用数组初始化创建数组并对它的各个元素进行初始化
int a[]={1,23,3,33};
  • 创建数组时,如果没有指定初始值,数组便被赋予默认初始值
  • 基本类型数值数据,默认的初始值为0
  • boolean类型数据,默认值为false
  • 引用类型元素的默认值为null
  • 程序也可以在数组被构造之后改变数组元素的值

使用数组

  • 引用数组的一个元素
arrayName[index]
  • 数组下标必须为int,short,byte或者char.
  • 下标从零开始计数
  • 元素的个数即为数组的长度,可以通过arryName.length得到
  • 元素下标最大值为length-1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException)
  • 数组名是一个引用:
public class Arrays {
    public static void main(String[] args) {
        int []a1={1,2,3,4,5};
        int[]a2;
        a2 =a1;
        for (int i = 0; i < a2.length; i++) {
            a2[i]++;
        }
        for (int i = 0; i < a1.length; i++) {
            System.out.println("a1["+i+"] =" +a1[i]);
        }
    }
}
/**
 * 输出结果
 * a1[0] =2 a1[1] =3 a1[2] =4 a1[3] =5 a1[4] =6
 */
  • 字符串引用构成的数组–每个元素都是引用
public class ArrayOfStringsDemo {
    public static void main(String[] args) {
        String[] anArray = { "String One", "String Two", "String three" };
        for (int i = 0; i < anArray.length; i++) {
            System.out.println(anArray[i].toLowerCase());
        }
    }
}
/**
 * 运行结果
 * string one string two string three
 */

复制元素的部分或者全部元素
arraycopy(Object src, int srcPos, Object dest, int destPos, int length);

/**
 * 复制数组或者数组中的部分元素
 * 
 */
public class ArrayCopyDemo {
    public static void main(String[] args) {
        char[] copyFrom = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
        char[] copyTo = new char[7];
        System.arraycopy(copyFrom, 2, copyTo, 0, 4);
        System.out.println(new String(copyTo));
    }
}
// 输出结果 cdef

多维数组
二维数组的声明和构造

  • int[][]myArray;
    myArray是指向2维数组的引用。其初始化值为null
  • int[][]myArray= new int[3][5];
    定义引用时,同时构造数组并初始化引用。这个数组所有元素的初始值为0.
  • int[][]myArray={{1,2,3},{4,5,6}}
    定义引用、构造数组,初始化数组元素。
    -二维数组的长度及每行的长度 行数

public class UnevenExample3 {
    public static void main(String[] args) {
        // 声明并构造一个2维数组
        int[][] uneven = { { 1, 2, 2 }, { 0, 3 }, { 1, 2, 3, 4 } ,{0}};
        // 数组的长度(行)
        System.out.println("Length of array is :" + uneven.length);
        // 数组每一行的长度(列数)
        System.out.println("Length of row[0] is :" + uneven[0].length);
        System.out.println("Length of row[1] is :" + uneven[1].length);
        System.out.println("Length of row[2] is :" + uneven[2].length);
    }
    /**
     * 输出数据 
     *  Length of array is :3
     *  Length of row[0] is :3
     *  Length of row[1] is :2
     *  Length of row[2] is :4
     */
}
定义1个3X3的二维数组,求出每行的最大值,保存至1个一维数组。要求使用行指针完成访问每个元素,求最大值的功能。 行指针 数组:a[2][3]={{1,2,3}{4,5,6}} (行指针)a是整个数组的首地址,指向第一行,a+1指向第二行元素 (列指针)*a指向第一行的第一个元素,*(a+1)指向第二行第一个数==>对行指针取值就成了列指针 (指向一个元素)*(a+1)+1指向第二行第二个元素 (取一个元素)*(*(a+1)+1)(也可写成a[1][1])表示第二行的第二个元素 行指针还可以这样定义int (*p)[n],此处定义的p指针,每加1,移动n个地址位(针对不同二维数组定义不同的n值) .. 阅读详情

相关推荐

Python:创建1维、2维和3维数组示例代码

以上代码演示了如何使用NumPy库创建1维、2维和3维数组,并打印出数组中的元素。当然,NumPy库还有更多高级功能,感兴趣的读者可以继续学习。在Python中,我们可以使用NumPy库方便地创建多维数组。这里提供一个示例代码,演示如何创建1维、2维和3维数组。接下来,我们就可以使用NumPy库中的函数来创建数组了。Python:创建1维、2维和3维数组示例代码。

BUG?不存在的! 853

JS中数组的常用方法(包含es6扩展)

1、 join() 功能:将数组中所有元素都转化为字符串并连接在一起。 输入: 分隔符,默认为逗号 输出:分隔符分割的字符串 举例: var a = [1,2,3]; a.join(); // =>"1,2,3" a.join(";");// =>"1;2;3" 2、 reverse() 功能:将数组中的元素颠倒顺序。 输入:无 输出:逆序的数组 举例: var a = [1

1万+

控制台模拟前端请求实现快速刷网课时长

本教程仅用于学习前端技术和网页开发,旨在提供教育与技术指导。对于任何未经授权或违反规定的使用行为,本人不承担任何责任。注意到那个serive后面有timestamp时间戳,暗示它很可能就是每30秒汇报一次进度和播放时长的命令,我们右键——复制——复制为fetch。有的网站上的网课需要的不仅仅是进度,而是时长,所以倍速插件失效,但我们可以使用控制台命令来模拟请求实现快速刷网课时长。尝试修改即可,例如我修改time为800,然后复制粘贴到控制台执行。播放视频,等待前端请求出现,然后复制前端请求为fetch。

m0_74823408的博客 2072

题目:有一个数组[1,3,4,1,4,6,3,1,11,31,2,45,12,4,6,7,8,21,12,3,4,51],请统计数组中每个数字出现的次数,并且按照次数从大到小打印这些数字和次数

代码: // 测试数据 int[] arrays = {1,3,4,1,4,6,3,1,11,31,2,45,12,4,6,7,8,21,12,3,4,51}; // map的key是上述数组中的数字,value是数字在上述数组中出现的数目 Map<Integer,Integer> map = new HashMap<Integer, Integer>(); // 遍历数组 for (int num : arrays){ // 检查该数字是否已经放入了map if

qq_42449963的博客 584

通达信大单资金实时监控与播报插件:股票分析的实用利器——大红球

本文介绍了一款专为通达信软件设计的大单资金实时监控与播报插件,该插件以其傻瓜式操作和入门级特性在股民中广受欢迎。插件核心功能包括与通达信版面的无缝联动、大单金额范围的自定义设置、资金流动的可视化展示以及智能声音播报等。其技术架构基于本地网页形式,自带分时图显示功能,数据实时更新且无需L2账户,承诺永久免费升级。插件通过红绿球的大小和颜色直观展示资金规模与买卖方向,顶端全局统计功能提供宏观资金流动分析。尽管插件数据具有较高参考价值,但投资者仍需结合其他因素进行综合判断。插件界面可自适应调整,提供个性化使用体验

guleba的博客 6599

【python】import pandas as pd用法

是 Python 里最常用的数据分析库之一。 的意思是:导入 pandas 库,并给它起个别名 。这样用起来更简洁: 下面总结 pandas 的常见用法(配例子)。目录🔹 1. 数据结构(1) Series(一维数据,类似于数组 + 标签)(2) DataFrame(二维数据表,类似于 Excel 表格)🔹 2. 数据读写🔹 3. 数据查看🔹 4. 数据选择与索引🔹 5. 数据清洗🔹 6. 数据运算🔹 7. 数据筛选(布尔索引)🔹 8. 分组与聚合🔹 9. 排序 Pandas 常用方

2401_86285609的博客 1534

数组a[3][4],哪个不能表示a[1][1]

数组a[3][4],哪个不能表示a[1][1]? (1)*(a[1] + 1)     (2)*(&a[1][1]) (3)(*(a + 1))[1] (4)*(a + 5) 这是一道考察二维数组的经典题。 a 首行地址 a+1 加一行元素长度后的地址 &a 整个元素的首地址 &a + 1 加一个数组长度后的地址 a[0] 首行首元素地

zhou686868的博客 2387

保姆级教程:在Windows上用Python+OpenCV调用海康工业相机(附MVS配置避坑指南)

本文提供了一份详细的Windows环境下使用Python和OpenCV调用海康工业相机的保姆级教程,涵盖MVS配置避坑、相机连接、图像获取与格式转换等关键步骤。特别针对工业相机取流中的常见问题,如独占访问控制和多相机协同工作,提供了实用解决方案,帮助开发者快速实现稳定的图像采集系统。

weixin_29228781的博客 401

bug原因:数组下标的最大值是数组长度-1,而不是数组长度本身。

vue写的前端抽奖(唯一 ,排他,抽中后删除),出现抽空(在还有名单可抽的情况下,没有抽中任何人)的bug。 源码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-wi...

木木的学习笔记 1894

近五年体内微/纳米机器人赋能肿瘤精准治疗综述:以 GBM 为重点

摘要 微/纳米机器人在实体瘤治疗领域展现出突破性潜力,通过主动运动能力解决传统纳米药物递送效率低、渗透不足等核心问题。2021-2025年间形成三条技术路线:1) 磁驱、声驱等运动增强递送实现深层渗透;2) 与免疫治疗融合实现原位免疫唤醒;3) 针对胶质母细胞瘤开发跨屏障递送系统。研究重点从单一运动性能转向"运动-分布-疗效"的系统评价,需建立标准化指标评估运动学参数、肿瘤分布均匀性和安全性。未来挑战在于临床转化的可制造性、闭环操控及生物相容性优化,特别是对血脑屏障穿透等复杂场景的系统集

AllenLV的博客 5203

利用 Python 构建高效爬虫爬取国家标准文献——从基础到进阶

然而,由于许多标准文献需要从特定网站获取,手动下载既耗时又低效,因此构建自动化爬虫成为一种实用且高效的解决方案。本文从技术选型、网站分析、代码实现到反爬优化,全面讲解了如何爬取国家标准文献。国家标准文献(National Standards Literature)是国家对各领域统一规范的文件,涵盖了技术参数、测试方法、生产工艺等内容。因此,通过自动化爬虫技术进行文献爬取和管理,不仅能解放劳动力,还可以提高数据管理效率。在构建爬虫前,我们需要对目标网站进行分析,包括页面结构、请求方式以及可能的反爬机制。

2201_76125261的博客 2106

java数组复习

#数组复习 (内容借鉴于 公开课→清华大学java自主学习教程 https://www.bilibili.com/video/av36737688?p=16) 数组的概念 ·数组是由同一类型的对象或者基本数据组成,并封装在同一标识符(数组名称)下。 数组是对象 ·动态初始化 ·可以赋值给Object类型的变量 ·在数组中可以调用类Object的所有方法 ·每个数组都有一个由Public final...

qq_45290445的博客 259

基于 MATLAB BP 神经网络的财务预测

通过基于 MATLAB BP 神经网络的财务预警模型,我们可以对企业的财务风险进行有效地识别和预测。在具体实现过程中,需要注意对财务数据的预处理、模型参数的调整以及结果的解释等问题。MLP模型的输入层、输出层和隐含层之间均为全连接,每个神经元都是上一层神经元的加权求和再加偏置后的非线性变换。其中,输入层接受财务数据,输出层输出财务预测结果,隐含层则对输入数据进行处理和抽象。其中,X’是标准化后的值,X是原始值,μ_i 和σ_i 分别是指标 i 在样本中的均值和标准差。其中,X’是标准化后的值,X是原始值。

TechPulseZ的博客 924

TypeScript 3.1增加可映射元组和数组类型

TypeScript团队最近发布了TypeScript版本3.1,继3.0版本之后添加了可映射元组和数组类型以及其他一些改进。\\几乎每个JavaScript应用程序都需要映射列表中的值,这种模式在ES2015中通过剩余参数进行了简化。\\TypeScript团队提供的一个常见示例:\\\function stringifyAll(...elements) {\ return element...

weixin_34250709的博客 217

【深度学习新浪潮】Token经济学深度解析:从AI“新智元”梗到产业核心,研究成果+标杆产品全拆解

在正式深入研究和产品分析前,必须先破除概念误区:行业内常说的Token经济学,并非单一概念,而是分为AI词元Token经济学和Web3通证Token经济学两大核心分支,二者底层逻辑、应用场景天差地别,也是大众最容易混淆的点。Token是AI时代的新大宗商品:黄仁勋将Token类比为工业时代的电力、石油,是AI时代的核心生产资料与基础计价单位,不再是单纯的技术单元,而是具备标准化、可计量、可交易、可分层的数字商品,其价值由算力消耗、推理效率、实际应用价值共同决定,而非虚拟炒作。Token五层定价模型。

专注:太空算力、AI infra、异构调度、大模型成本工程 686

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

剑指 Offer39众数——数组中出现次数超过1/3的数字

题目: 给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 进阶:尝试设计时间复杂度为 O(n)、空间复杂度为 O(1)的算法解决此问题。 示例 1: 输入:[3,2,3] 输出:[3] 示例 2: 输入:nums = [1] 输出:[1] 示例 3: 输入:[1,1,1,3,3,2,2,2] 输出:[1,2] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/majority-element-ii 著作权归领扣网络所有

weixin_45996005的博客 477

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

1. 将数组A中的内容和数组B中的内容进行交换。(数组一样大) 2. 计算1/1-1/2+1/3-1/4+1/5 ⋯⋯ + 1/99 - 1/100 的值。 3. 编写程序数一下 1到 100 的

将数组A中的内容和数组B中的内容进行交换。(数组一样大) #include<stdio.h> int main() { int i; int A[10]; int B[10]; int t[10]; printf(“请输入数组A:”); for(i=0;i<10;i++) { scanf(" %d",&A[i]); } printf(“请输入数组B:”); for(i...

qq_43185543的博客 877

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

案例:将1到100之间所有能被3整除的数字添加到新数组里

//需求:请将1到100之间所有能被3整除的数字添加到新数组arr中,并打印到控制台 var arr=[]//声明一个空数组 for(var i=1;i<=100;i++){//遍历1-100 if(i%3==0){//找出能被3整除的数字 arr[arr.length] = i;//通过数...

a13054305221的博客 2605

如何找出数组里出现次数超过总数1/3的数 Java实现

数组里出现次数超过总数1/3的数最多有两个。 三个不相同的数字为一组,删掉每一组。剩下的就是出现次数超过总数1/3的数。 import java.util.ArrayList; import java.util.List; class Solution { public List<Integer> majorityElement(int[] nums) { ArrayList<Integer> ans = new ArrayList<Integer&g

乾坤未定,你我皆是黑马 648

实现数组a = [1,[2,[3,[4,null]]]]转换[4,[3,[2,[1,null]]]]

(function main() { let a = [1,[2,[3,[4,null]]]] // 实现数组 b = [4,[3,[2,[1,null]]]] let path = [] while(a){ path.push(a.shift()) a = a[0] } console.log(path) let real = [a] while(path.length){ let arr =

麦芒的博客 934

二维数组转一维数组:a[0][3]和a[1][0]为什么值相同?

下面这个二维数组,为什么a[0][3]和a[1][0]都是相同的啊?下列程序执行后的输出结果是()。(2012.中兴) main() { int a[3][3], *p, i; p = &a[0][0]; for (i=0;i<9;i++) { p[i] = i + 1; } printf("a[1][2]= %d \n",a[1][2

ulando的博客 1270

3.力扣-数组-统计数组中的元素1

3.力扣-数组-统计数组中的元素1 错误的集合(LeetCode645) 题目概述:集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。 题目示例: 方法一:排序 1.寻找重复的数字:如果相邻的两个元素相等,则该元素为重复的数字 2.寻找丢失的数字: ·如果丢

“秃头”少女 313

3.1 数组

程序 3-1 将不超过100个数逆序输出 #include<stdio.h> int main() { int const MAXN = 105; int a[MAXN]; int n = 1, x = 0; // //注意头疼的边界问题 // while (scanf...

diequan9206的博客 124

3-1 数组

代码:https://github.com/NIGHTFIGHTING/go_learning/blob/master/src/basic/array.go package main import ( "fmt" ) // 测试数组是值类型 func printArray(arr [5]int) { arr[0] = 100 for i, v...

INGNIGHT的专栏 206
上一篇: 1.2.1-基本数据类型与表达式
下一篇: 类与对象
我叫王哈哈
博客等级 码龄11年 36粉丝 98原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值