08 2018 档案

摘要:一、题目 1、审题 2、分析 一个 9 * 9 的棋盘,其中 ‘ . ’ 代表未填写,判断其中填写的数字是否符合如下特点: a、每行的数字不重复 b、每列的数字不重复 c、每个3*3 的小棋盘中数字不重复 二、解答 1、思路: 用双层循环,其中外循环 i 代表 X 轴坐标, j 代表 Y轴坐标。 则 阅读全文
posted @ 2018-08-09 09:13 skillking2 阅读(129) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 将 target 插入有序数组中,求插入后 target 所在的下标。 二、解答 1、思路: 通过二分法记录出最终的下标 median,然后通过比较 median 所在的数值与 target 大小,确定 target 下标。 阅读全文
posted @ 2018-08-08 09:55 skillking2 阅读(98) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 求 target 在有序数组 nums 中出现的最小下标和最大下标组成的数组。否则返回 {-1, -1}。时间复杂度为 O(log n)。 二、解答 1、思路: 时间复杂度为 O(log n),想到用二分法。要求所在下标组合,则需在求得 target时在向前、向后查找 阅读全文
posted @ 2018-08-08 09:12 skillking2 阅读(1765) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 给出一个有序的数组,其中循环向右移动了若干个单元,导致数组成了两个有序的模块。求 target 在数组中的下标,其中时间复杂度必须为 O(log n). 二、解答 1、思路: a、通过二分法求得数组中有序的两组数的分割开的下标; b、通过二分法求 target 在两组有 阅读全文
posted @ 2018-08-08 08:47 skillking2 阅读(122) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 一个只包含‘(‘、’)’的字符串,求其中正确闭合的子串的最大长度。 二、解答 1、思路: 方法一: 从第一个字符开始遍历,依次求出从遍历的字符开始的最长闭合的字符串长度,从而记录最长闭合的字符串长度。 方法二: 用 Stack 存放 '(' 的下标,碰到 ‘)’只需要 阅读全文
posted @ 2018-08-07 23:11 skillking2 阅读(100) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 给出一个数字型数组,改变其中的数字顺序,使得其为元素的所有数字组合后排序的下一个序列。 二、解答 1、思路: a、从后向前看,比较得到首个比后面紧挨着的数字小的第一个数,记录其下标 i , 若 i 为 0,即此时数字组合为最大值,只需翻转数组即可。 b、查找下标 i 之 阅读全文
posted @ 2018-08-07 21:11 skillking2 阅读(117) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 给出一个字符串 S, 一个字符串单词数组 words(所有单词均等长),在S中找到包含words中所有单词且只包含一次的子字符串,返回符合该要求的所有子串的首位置,word中的字符串可能会有重复。 二、解答 1、思路: 实现一: 通过暴力的方法依次截取 S 中的字符串进 阅读全文
posted @ 2018-08-07 09:04 skillking2 阅读(173) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 不适使用乘除、取余符号,求 int 型被除数除以除数所得的商。其中,商可能涉及溢出 int 范围。 二、解答 1、思路: a、int 型数据范围为 -2147483648 到 2147483647 。故,当商为 2147483648时,整数无法表示,故想办法将被除数与除 阅读全文
posted @ 2018-08-06 21:35 skillking2 阅读(146) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 返回第二个字符串在第一个字符串内出现的下标,否则返回 -1。 二、解答 1、思路: a、遍历第一个字符串中的字符; b、若出现与第二个字符串的首个字符相同,则第二层循环,遍历第二个字符串,依次比较与第一个字符串的每一个字符; c、若每一个字符相等,则返回下标,否则,跳出 阅读全文
posted @ 2018-08-06 08:34 skillking2 阅读(101) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 给出一个无序数组,一个val,将数组中元素为 val 的元素去除,并统计剩下元素的个数。 二、解答 1、思路: 遍历数组,将值为 val 的元素依次放在数组尾部,去除尾部的长度即为剩下元素的个数。 阅读全文
posted @ 2018-08-05 09:58 skillking2 阅读(70) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 给出一个有序的数组,求出其中不重复元素的个数,并修改原数组存放不重复元素。 二、解答 1、思路: 用 count 计数不重复元素个数,其中‘不重复’只需与数组中前一个元素进行比较即可; count作为存放新元素的数组下标; 阅读全文
posted @ 2018-08-05 09:28 skillking2 阅读(95) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 给一个链表,与一个数字 k,每次翻转链表中的 k 个结点,若剩下的结点个数不满 k 个,则不翻转。 二、解答 1、思路: a、计算出总结点个数 total, 则需要翻转k个结点的总躺数为 total / k; b、循环实现翻转 k 个结点;其中翻转即为将后一个结点依次插 阅读全文
posted @ 2018-08-05 09:05 skillking2 阅读(87) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 依次交换相邻两个结点,其中每个结点只交换一次。 二、解答 1、思路: 方法一:直接交换两个结点,其中交换方式为先删除结点 n 后一个结点,再将删除的结点在 n 结点之前插入。 方法二: 直接交换两个相邻结点的值,而不用交换结点。 阅读全文
posted @ 2018-08-04 21:48 skillking2 阅读(140) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 将 n 个有序链表合并成为一个有序链表。 二、解答 1、思路: Java 有一个 PriorityQueue,该队列能够将放入的对象进行排序。故将所有非空队头元素放入该队列,取出一个元素后,再放入所取出元素指向的下一个非空结点;当队列中元素为空时,取出的顺序即为排序后的 阅读全文
posted @ 2018-08-04 09:30 skillking2 阅读(147) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 给出数字 n,求所有正常的闭合的括号字符串的集合。 二、解答 1、思路: 利用循环不能解决问题,考虑用递归实现; a、当 '(' >= ‘)’ 时,才是正常情况;否则不能闭合,即结束此次递归; b、依次加入 '('、‘)’,当 ')' == '(',时,是一种满足的情 阅读全文
posted @ 2018-08-03 21:50 skillking2 阅读(124) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 合并两个有序的链表元素组成一个新链表。 二、解答 1、分析: 方法一: 依次比较两个链表中的元素,依次取数值小的元素插入新的链表。 方法二: 直接在两个链表之间进行比较,将值得大小插入第一个链表,最终返回第一个链表。 阅读全文
posted @ 2018-08-03 09:30 skillking2 阅读(92) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 返回括号组成的字符串其中的括号是否都能正确闭合。 二、解答 1、分析: 方法一: 用栈实现。 左括号进栈; 右括号时栈顶出栈并判断是否匹配。最终判断栈是否为空即可。 方法二: 用栈实现。 左括号时,入栈对应的右括号; 右括号时,栈顶出栈并判断是否与该右括号一致 阅读全文
posted @ 2018-08-03 09:15 skillking2 阅读(147) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 去除链表的倒数第 n 个元素,并返回链表 二、解答 1、分析: 方法一: a、遍历确定链表节点个数 total; b、去除第 total - n 个节点; 方法二: a、采用指针,slow 指向头结点,fast 指向距离头结点为 n 的节点; b、slow 与 fast 阅读全文
posted @ 2018-08-03 08:36 skillking2 阅读(132) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 求所给数组中选取4个数字之和等于 target 的所有组合。 二、解答 1、分析: a、数组进行排序,依次遍历数组下标为 i 的元素 ; b、遍历元素时,target - nums[i] 即为 剩余的数组中的元素求三数之和。 阅读全文
posted @ 2018-08-02 23:50 skillking2 阅读(104) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 给出数字组成的字符串,求他所对应电话号码中的字母所组成的字符串的集合。 二、解答 1、分析: a、依次截取字符串中的数字,作为switch 语句的条件调用 case; b、case 中将原 List 中所有字符串与数字对应的字母集合 List 进行全连接; c、注意: 阅读全文
posted @ 2018-08-02 21:29 skillking2 阅读(101) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 给出一个数字数组,求其中三个元素的和让其最接近 target。 二、解答 1、分析: a、将数组 nums 排序,遍历数组中元素; b、遍历下标为 i 的元素时,取 low 指针指向下标为 i + 1 的元素, high 指向数组最后一个元素下标; c、循环判断 当 阅读全文
posted @ 2018-08-02 20:49 skillking2 阅读(100) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析: 给出一个数字型数组,求任意三个数组中数字和为0的所有组合。 二、解答 1、分析: a、将数组 nums 排序,遍历数组中元素; b、遍历下标为 i 的元素时,取 low 指针指向下标为 i + 1 的元素, high 指向数组最后一个元素下标; c、循环判断 当 lo 阅读全文
posted @ 2018-08-02 19:28 skillking2 阅读(86) 评论(0) 推荐(0)
摘要:一、题目 1、审题 2、分析 求出字符串素组的最长共同前缀。 二、解答 1、分析: 方法一: a、求出数组中长度最短的字符串作为临时共同前缀; b、遍历字符串数组,判断每一个元素是否拥有临时前缀 Y: 返回临时前缀 N:c c、临时前缀减去最后一个字符,进行 b; 方法二: a、将第一个元素作为临时 阅读全文
posted @ 2018-08-02 09:33 skillking2 阅读(175) 评论(0) 推荐(0)
摘要:一、题目 1、审题: 2、分析: 输入 1-3999 的罗马数字字符串,输出对应阿拉伯数字。 二、解答 1、分析: 字符串从左至右开始计算字符对应的阿拉伯数字, 若比相邻右一个字符所对应的数字大,则加上此字符对应数字; 若比相邻右一个字符所对应的数字小,则减去此字符对应的数字; 阅读全文
posted @ 2018-08-02 08:58 skillking2 阅读(115) 评论(0) 推荐(0)
摘要:一、题目 1、审题: 2、分析 输入数字,转化为罗马符号输出,数范围为 1-3999. 二、解答 1、分析: ①将罗马数字符号的 千位、百位、十位、各位 均列出分别作为一个数组; ②输入的数字各个位数分别为①中的数组的下标,进行拼装即可; 阅读全文
posted @ 2018-08-01 21:17 skillking2 阅读(112) 评论(0) 推荐(0)
摘要:一、题目 1、审题: 2、分析: 给出纵坐标的数组,求两个坐标所能组成的最大面积。 二、解答 1、分析: a、记数组下标 low=0 和 high=数组长-1; b、low 和 high 相向而行,求得所组成最大面积; 其中判断条件为,若 low 所在纵坐标 比 high所在纵坐标大,则 high- 阅读全文
posted @ 2018-08-01 20:35 skillking2 阅读(84) 评论(0) 推荐(0)
摘要:一、题目 1、审题: 2、分析: 两个字符串,其中 '.' 可以代表任意一个字符; ‘*‘ 代表0或多个前一个字符的长度扩充, 判断 两字符串是否可以匹配; 二、解答 1、分析: a、当 p 长度为 0 时,只需判断 s 长度是否为0 b、当 s 长度为 0 时,看 p 的第二个字符是否为 * : 阅读全文
posted @ 2018-08-01 20:01 skillking2 阅读(116) 评论(0) 推荐(0)
摘要:一、题目 1、审题: 2、分析: 判断数字是否回文 二、解答 1、分析: 方法一: 将数字反转,看是否和反转前相等 方法二:仅反转 x 的一半,在判断是否回味 方法三:利用 StringBuffer 的 reverse方法 直接进行判断; 阅读全文
posted @ 2018-08-01 09:29 skillking2 阅读(154) 评论(0) 推荐(0)
摘要:一、题目 1、审题: 2、分析: 截取所给字符串的最前面的数字部分,否则为0; 二、解答 1、分析: a、字符串去前后空格; b、判断正负号; c、依次截取字符,判断是否为数字,进行组装; 阅读全文
posted @ 2018-08-01 09:05 skillking2 阅读(142) 评论(0) 推荐(0)