上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 24 下一页
摘要: 题意:从数组的索引为0处出发,数组中存储的是当前索引处能跳跃的步数,如arr[0] = 2,表示从索引0可以到达索引1和2。问最后是否能到达最后的索引。 思路:用reach: 记录从当前位置能到达的最远的位置(从0开始计数)每次reach取能到达的最大值。 题意:返回到达最后位置的最小步数。 阅读全文
posted @ 2019-07-23 21:47 爱学英语的程序媛 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 题意:对于一个序列,若存在 i<j , a[j]>a[j] 则是一组逆序对;若这个序列是升序的,则逆序对个数为0;若是降序的,逆序对个数最大。 分而治之模板: Divide and Conquer Paradigm: 1) divide into smaller suibproblems; 2) c 阅读全文
posted @ 2019-07-23 10:21 爱学英语的程序媛 阅读(823) 评论(0) 推荐(0) 编辑
摘要: 题意:每行都是从小到大排好序的,且 每行第一个数比前一行最后的一个数大。 解法一:将一个二维数组当作一维数组来进行二分搜索,则left索引为0,right索引为 row*col - 1; 再将这个一维数组中的坐标映射到二维数组中, 即matrix[mid/col][mid%col]. 二分搜索也可以 阅读全文
posted @ 2019-07-22 22:25 爱学英语的程序媛 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 题意:A是一个从1到N的全排列数组,对于每个A里的元素,都不存在 i<k<j 时, A[k]*2 = A[i] * A[j] 解法一:迭代 C++ Python: 解法二:递归, 个数为N的序列中,奇数的个数为(N+1)/2, 偶数的个数为N/2,故beautifulArray(N) 由 beaut 阅读全文
posted @ 2019-07-22 16:45 爱学英语的程序媛 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个升序排列的数组,找到k个与x最相近的元素(即差值最小),返回的结果必须要是按升序排好的。如果有两个数与 x的差值一样,优先选择数值较小的那个数。 解法一:双指针(排除法),一个一个删,因为是有序数组,且返回的是连续升序子数组,所以每一次删除的元素一定是位于边界;如果数组含有共 7 个元 阅读全文
posted @ 2019-07-21 22:21 爱学英语的程序媛 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 思路:用递归来做感觉比动态规划简单,题目让我们判断s1和s2是否是scramble string,则s1上(从左起计数)有一个长度为 i 的分割点将s1分为s1_l 和 s1_r 两段 分别与 s2的(从左起计数一个长度为i的) s2_l 和 s2_r 互为 scramble string;或者与  阅读全文
posted @ 2019-07-20 11:24 爱学英语的程序媛 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 题意:N表示行数,K表示第N行第几个数,它们都从1开始计数。其中若上一行中有0,则在下一行变为01;1变为10。最后输出给定第N行第K个数的值。 思路:用递归来做,可以表示为一个二叉树,第N行第K个数的父亲结点的位置是第N-1行第(K+1)/2个数。观察规律可以看出:偶数结点等于它的父结点;奇数结点 阅读全文
posted @ 2019-07-16 20:09 爱学英语的程序媛 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 思路: 解法一:快慢指针,一开始都指向头结点,快指针fast每次走两步,慢指针slow每次走1步。若链表存在环,则fast肯定会追上slow,否则链表遍历完后,返回false。 /** * Definition for singly-linked list. * struct ListNode { 阅读全文
posted @ 2019-07-15 21:34 爱学英语的程序媛 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 思路:分情况讨论+栈。 思路:递归 阅读全文
posted @ 2019-07-11 23:17 爱学英语的程序媛 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 思路:这道题和小岛那道有些类似,主要是实现以下这四个操作: 阅读全文
posted @ 2019-07-10 19:09 爱学英语的程序媛 阅读(218) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 24 下一页