摘要:
【知识点讲解】 类似于桶排序,在整数数据不算太大的情况下,利用int类型不超过32,longlong类型不超过64,对于数组下标进行映射,优点是对于需要排序或者按照顺序输出的会大幅度提高速度,因为数组相当于一个天然的有序的桶,直接映射数据即可 最典型的是计数排序 可映射到数据下标的数据可以是整数、2 阅读全文
摘要:
【分析题目】 一个小孩爬一个 n 层台阶的楼梯。他可以每次跳 1 步, 2 步 或者 3 步。实现一个方法来统计总共有多少种不同的方式爬到最顶层的台阶。 【解题思路】 【动态规划】 自己写的 public int climbStairs2(int n) { if (n == 0) return 1; 阅读全文
摘要:
描述 有一个机器人的位于一个 m × nm×n 个网格左上角。 机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。 问有多少条不同的路径? n和m均不超过100且答案保证在32位整数可表示范围内。 【分析题目】 一个棋子从左上角(0,0)按照从向下或者向右的方向,到达右下角(m,n 阅读全文
摘要:
【题目】你有三种硬币,分别面值2元,5元和7元,每种硬币都有足够多买一本书需要27元。如何用最少的硬笔组合正好付清?【动态规划的四部分】【1、确定状态】最后一步化成子问题:状态f(X)=用多少枚硬币能拼出子问题X【2、状态转移方程】【3、初始条件和边界条件】【4、计算顺序】从已有数据开始计算 阅读全文
摘要:
阅读全文
摘要:
实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 示例 1: 输入: 4输出: 2示例 2: 输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将 阅读全文
摘要:
二分查找1.目标函数单调性(单调递增或者递减)2.存在上下界3.能够通过索引访问代码模板left,right - 0,len(array)-1while left<=right mid = (left+right)/2 if array[mid] == target: #find the targe 阅读全文
摘要:
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 阅读全文
摘要:
这个题给我的感觉就是,以目标为导向,可能一个做法有很多实现方式。但是你可以做到以目标为导向。越复杂的逻辑判断,不如一步步的计算,落实到一步步,把逻辑计算简单化,这是符合循环的思想。就是在想做这步的时候,你可以有几种方法。 机器人在一个无限大小的 XY 网格平面上行走,从点 (0, 0) 处开始出发, 阅读全文
摘要:
字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列: 序列中第一个单词是 beginWord 。序列中最后一个单词是 endWord 。每次转换只能改变一个字母。转换过程中的中间单词必须是字典 wordList 中的单词。给你两个单词 阅读全文