arr

1306. 跳跃游戏 III BFS or DFS

故事扮演 提交于 2020-01-24 01:04:34
题目地址 这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]。 请你判断自己是否能够跳到对应元素值为 0 的 任意 下标处。 注意,不管是什么情况下,你都无法跳到数组之外。 示例 1: 输入:arr = [4,2,3,0,3,1,2], start = 5 输出:true 解释: 到达值为 0 的下标 3 有以下可能方案: 下标 5 -> 下标 4 -> 下标 1 -> 下标 3 下标 5 -> 下标 6 -> 下标 4 -> 下标 1 -> 下标 3 示例 2: 输入:arr = [4,2,3,0,3,1,2], start = 0 输出:true 解释: 到达值为 0 的下标 3 有以下可能方案: 下标 0 -> 下标 4 -> 下标 1 -> 下标 3 示例 3: 输入:arr = [3,0,2,1,2], start = 2 输出:false 解释:无法到达值为 0 的下标 1 处。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/jump-game-iii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 DFS版本: 思路: 遇到了选择左右的情况时,我们把两种情况都记录下来

数组操作解析

血红的双手。 提交于 2020-01-24 00:24:08
数组操作解析: var arr = [1, 3, 5, 7, 4]; brr=arr; //简单类型存储的是值本身,复杂类型存储的是地址, //如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。 //如果修改对象里面的键值对,对应的变量都会改变 arr[6] = "w";//如果下标是已经存在的,那赋值操作就是修改数组元素的值,如果下标是不存在,那赋值操作就给数组添加元素。 console.log(arr,brr)//arr= [1, 3, 5, 7, 4, empty, "w"]; brr= [1, 3, 5, 7, 4, empty, "w"]; var crr=arr.reverse()//反转数组,返回新数组 var drr=brr.concat(crr); console.log(drr) //["w", empty, 4, 7, 5, 3, 1, "w", empty, 4, 7, 5, 3, 1] 上面例子中涉及了数组操作的两个知识点: 1,数组的存储空间(栈内存和堆内存,有时间再整理,两者的区别),在这里只是简单的理解。简单类型传递值,复杂类型传递地址。如果把第一个对象赋值给另一个变量,此时两个变量会指向同一个对象。如果修改对象里面的键值对,对应的变量都会改变 2,数组基本操作。 push : 从后面添加元素,返回新数组的length。 pop:

web前端入门到实战:JS基础-语法+流程控制语句+函数+内置对象【数组】

喜你入骨 提交于 2020-01-23 19:19:05
JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使用方法有两种: (1)typeof 变量 (2) typeof(变量) undefined派生自null,所以undefined==null返回的结果是true 用于任何数据类型,Number()可以将非数值转化为数值,但是有一些数据是不能转化为数值的,如果这类数据通过Number()进行强制转化的话,会返回NaN var a=Number(name_01); 用于把字符串转换为数值 var b=parseInt("28px") var d=parseFloat("12.34.56px"); 不知道值是不是null或者undefined,可以使用String(),可以将任何类型的值转为字符串 var idstr=ids.toString(); console.log(String(m)); 在运算中,除了加法,其余的运算都会将字符串先转换为数字之后再进行计算,但是两个数据相加,如果有一方是字符串的话,加号的作用就是将他们进行拼接 如: 数字5和字符串"5"进行加减乘除运算,结果分别是:55 0 25 1 &&逻辑与: 如果第一个操作数隐式转换后为true,则返回第二个操作数;

Python 数据分析

帅比萌擦擦* 提交于 2020-01-23 18:00:49
Python 数据分析(一) NumPy基础:数组与向量化计算 1.数组生成函数: arange:生成连续数字的数组(从0开始) In [1]: np.arange(15) Out[1]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]) zeros:一次性创造全0数组 In [2]: np.zeros(10) Out[2]: array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]) ones:一次性创造全1数组 In [3]: np.ones(10) Out[3]: array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]) np.array:生成函数 In [4]: data = [1,2,3,4,5,6] In [5]: arr = np.array(data) In [6]: arr Out[4]: array([1, 2, 3, 4, 5, 6]) 2.ndarray的数据类型: dtype:显示数据元素类型,int表示整型,32表示占32个字节 同样有float64等 In: arr.dtype Out: dtype('int32') shape:显示数组每一维度的数量,(6,)表示6行0列 In : arr . shape

数组的创建与使用(Java实现)

与世无争的帅哥 提交于 2020-01-23 05:54:49
1.编写代码: 创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100 2.编写代码: 实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值. 3.编写代码: 实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6} 4.编写代码: 实现一个方法 sum, 以数组为参数, 求数组所有元素之和. 5.编写代码: 实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型). public class Array { public int [ ] Init ( int [ ] arr ) { //编写代码: 创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100 for ( int i = 0 ; i < arr . length ; i ++ ) { arr [ i ] = i + 1 ; } return arr ; } public void printArray ( int [ ] arr ) { //编写代码: 实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素,

第六周编程总结

a 夏天 提交于 2020-01-23 05:12:54
6-1 求两数平方根之和 (10 分) 函数fun的功能是:求两数平方根之和,作为函数值返回。例如:输入12和20,输出结果是:y = 7.936238。 函数接口定义: double fun (double a, double b); 其中 a和 b是用户传入的参数。函数求 a指针和b 指针所指的两个数的平方根之和,并返回和。 裁判测试程序样例: include<stdio.h> include <math.h> double fun (double a, double b); int main ( ) { double a, b, y; scanf ("%lf%lf", &a, &b ); y=fun(&a, &b); printf ("y=%.2f\n", y ); return 0; } /* 请在这里填写答案 */ 输入样例: 12 20 输出样例: y=7.94 1)实验代码 double fun (double *a, double *b) { double y; y=sqrt(*a)+sqrt(*b); return y; } 2)设计思路 3)本次调试过程中遇到的问题 问题:主要是输出重复以及返回错误。把printf语句删除,把return 0改为return y. 4)运行结果截图 7-1 利用指针返回多个函数值 (30 分) 读入n个整数,调用max_min(

【读书笔记】理解基本排序算法

故事扮演 提交于 2020-01-23 03:40:15
开始日期:2018/07/23 前言 近段时间一直在阅读《数据结构与算法JavaScript描述》这本书,重新学习下算法。算法是作为一个程序员的基本素养,还是掌握一些基本的算法的,譬如排序算法。排序算法又分为基本排序算法和高级排序算法,以排序的效率来划分。以下的冒泡排序就是基本排序算法,最慢的排序算法之一。 冒泡排序 最慢的排序算法之一,数据值会像气泡一样从数组的一端飘向另一端。之所以会产生这种现象是因为算法会多次在数组中移动,比较相邻的数据,假设按升序排序,则当左侧值大于右侧值时将它们进行互换。 示例代码: function bubbleSort(arr){ var length = arr.length; // 数组交换方法 var swap = function(arr,index1,index2){ var temp = arr[index1]; arr[index1] = arr[index2]; arr[index2] = temp; } // 外循环则表示相邻比较的次数,比较一次后,最大的数会移向最右侧,则次数减一,进行下一轮循环 for(var outer = length; outer >= 2; --outer){ // 内循环则表示从第一个数值开始相邻比较,一直到最后一个 for(var inner = 0; inner< outer; inner){ if

排序算法

孤街浪徒 提交于 2020-01-23 01:59:25
冒泡排序: package sort . bubblesort ; import java . util . Random ; /** * @program: dataStructures_algorithms * @description: 冒泡排序 * @author: Sun * @create: 2020/01/10 16:52 * @version: 1.0 */ public class BubbleSort { /** * @param arr: 需要排序的数组 * @return void * @Description: 冒泡排序,此种交换方法速度更慢,不建议使用 */ public static void sort ( int [ ] arr ) { for ( int i = 0 ; i < arr . length - 1 ; i ++ ) { for ( int j = 0 ; j < arr . length - 1 - i ; j ++ ) { if ( arr [ j ] > arr [ j + 1 ] ) { arr [ j ] = arr [ j ] + arr [ j + 1 ] ; arr [ j + 1 ] = arr [ j ] - arr [ j + 1 ] ; arr [ j ] = arr [ j ] - arr [ j + 1 ]

[算法]最长子数组问题

强颜欢笑 提交于 2020-01-22 23:46:10
一、未排序正数数组中累加和为给定值的最长子数组长度 题目: 给定一个数组arr,该数组无序,但每个数都是正数,再给定一个正数K。求arr的所有子数组中所有元素相加和为K的最长子数组长度。 例如: arr=[1,2,1,1,1],K=3, 累加和为3的最长子数组为[1,1,1],return 3。 程序: public static int getMaxLength(int[] arr, int k) { if (arr == null || arr.length == 0 || k <= 0) { return 0; } int left = 0; int right = 0; int sum = arr[0]; int len = 0; while (right < arr.length) { if (sum == k) { len = Math.max(len, right - left + 1); sum -= arr[left++]; } else if (sum < k) { right++; if (right == arr.length) { break; } sum += arr[right]; } else { sum -= arr[left++]; } } return len; } 二、未排序数组中累加和为给定值的最长子数组长度 题目一:

js 成员为对象的数组,根据对象的键名来排序

被刻印的时光 ゝ 提交于 2020-01-22 21:20:02
有如下数据,需要根据 mark 的大小进行升序排序 js 方法 // 按某一键名对应键值的大小 从上到下,升序排序 [注:会改变原 arr 对应的数组] sortArrFun (arr, nameKey) { let min for (let i = 0; i < arr.length; i++) { for (let j = i; j < arr.length; j++) { const number1 = (arr[i])[nameKey] const number2 = (arr[j])[nameKey] if (number1 > number2) { min = arr[j] arr[j] = arr[i] arr[i] = min } } } } 调用方法 sortArrFun(arr, 'mark') 来源: CSDN 作者: 前端:小菜 链接: https://blog.csdn.net/qq_39025670/article/details/103764291