摘要:
题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现复杂度为 O(n) 的解法 阅读全文
摘要:
题目描述 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下: 1. 1 2. 11 3. 21 4. 1211 5. 111221 1 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被 阅读全文
摘要:
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3,5,6], 5输出: 2 示例 2: 输入: [1,3,5,6], 2输出: 1 示例 3: 输入: [1, 阅读全文
摘要:
列表 定义列表接口 用数组实现列表-MyArrayList 实现链表 Java List API 相关技巧 阅读全文
摘要:
数据结构基本概念 数据(data):属性,一切可以输入计算机并能被处理的都是数据 数据元素(data element):对象 数据对象(data object):对象集合 这么说,数据就是一种 数据结构,把数据元素按某种顺序摆在一起。 对象也可以认为是一种数据结构,因为它把n种不同的要素放在一起。 阅读全文
摘要:
讲的主要是实战,怎么用代码把数据结构实现一遍。总的来说,先实战,后理论! 面向对象要点 >对象将数据和操作打包在一起,类描述了这一切 >用构造器创建(实例化)对象>类和类之间的关系 -关联(组合、聚合) 聚合:Teacher ◇ --> Student (弱关联) 组合:Student ◆ --> 阅读全文
摘要:
题目描述 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。 示例 1 给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的 阅读全文
摘要:
题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1 -> 2 -> 4 ,1 -> 3 -> 4 输出:1 -> 1 -> 2 -> 3 -> 4 -> 4 方法 1:递归 思路 特殊的,如果 l1 或者 l2 一开始就是 nul 阅读全文
摘要:
迭代是人,递归是神! 从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。 从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。 递归 递归就是函数自己调用自己。 构成递 阅读全文
摘要:
题目描述 给定一个只包括 ' ( ' , ' ) ', ' { ' , ' } ' , ' [ ' , ' ] ' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例1: 输入:"()"输出:t 阅读全文