01 2022 档案

摘要:题目: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 思路: 首先就是遍历: class Solution { public int missingNumber(int[] nu 阅读全文
posted @ 2022-01-10 14:30 ProbablyTrue 阅读(29) 评论(0) 推荐(0) 编辑
摘要:题目: 统计一个数字在排序数组中出现的次数。 首先想到最普通的做法,遍历数组同时计数 代码如下: class Solution { public int search(int[] nums, int target) { int count = 0; for (int index = 0; index 阅读全文
posted @ 2022-01-10 10:36 ProbablyTrue 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题目: 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 首先用的list.countains方法,结果超时了,说明数据量比较大的情况下List的countain 阅读全文
posted @ 2022-01-10 09:54 ProbablyTrue 阅读(31) 评论(0) 推荐(0) 编辑
摘要:题目: 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。 比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 思路: 之前有做过类似的题目,当时是int数组的右移,和字符串的左旋是一样的 先全部翻 阅读全文
posted @ 2022-01-09 01:51 ProbablyTrue 阅读(33) 评论(0) 推荐(0) 编辑
摘要:题目: 请实现一个函数,把字符串 s 中的每个空格替换成"%20" 思路: 首先排除s.replace(" ", "%20"),纯纯耍流氓。 就是考虑replace函数的底层实现,由于replace是支持正则表达式的(估计很多人不知道,我也是偶然得知),实际底层实现复杂的多,这里我只需要实现替换空格 阅读全文
posted @ 2022-01-09 01:38 ProbablyTrue 阅读(19) 评论(0) 推荐(0) 编辑
摘要:题目: 请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。 例如 输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]] 阅读全文
posted @ 2022-01-09 00:52 ProbablyTrue 阅读(35) 评论(0) 推荐(0) 编辑
摘要:题目: 给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 思路: 想到hashmap自带的containKey的方法,遍历数组,如果存在containKey为是则跳出循环,为否则put进map中。 代 阅读全文
posted @ 2022-01-06 23:51 ProbablyTrue 阅读(25) 评论(0) 推荐(0) 编辑
摘要:题目: 给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 思路: 首先想到了一个递归方法,从头开始执行,每次传入当前需要处理的数组下标,结束递归的目标下标,以及正在等待换位的数值val 递归体内先求出等待换位的数值的新坐标,将待换位数值放入新坐标,同时记录新坐标和对应之前的值作为 阅读全文
posted @ 2022-01-06 23:29 ProbablyTrue 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题目: 给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票) 思路: 分析题目可以知道,每天只能交易获得 阅读全文
posted @ 2022-01-06 13:42 ProbablyTrue 阅读(23) 评论(0) 推荐(0) 编辑
摘要:题目: 一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,必须在原地修改输入数组 并在使用 O(1) 额外空间的条件下完成。 思路: 首先还是最基础的解答思路,数组已经排序,则重复值都会连在一起,故按顺序遍历数组,如 阅读全文
posted @ 2022-01-06 10:27 ProbablyTrue 阅读(28) 评论(0) 推荐(0) 编辑
摘要:最开始图省事,搞了一个list,在min函数被调用时将栈内现有数据全部排序后返回最小值 由于性能太差,考虑一个新的思路 设计思路:由两个栈组成,A栈作为元素栈,B栈作为最小元素栈push元素进栈时,和B栈栈顶元素比较,如果更小或相等则压入,否则不处理pop元素出栈时,和B栈栈顶元素比较,如果相等则B 阅读全文
posted @ 2022-01-05 16:00 ProbablyTrue 阅读(27) 评论(0) 推荐(0) 编辑
摘要:刚开始没理解题目,仔细看题发现要求用两个栈实现队列,思路如下: 队列的特点为“先进先出”,需要通过“”后进先出“”的栈来实现,只需要将两个栈分别用作入队栈和出队栈即可。 即栈A只负责元素入队,当队列顶部元素需要出队时,如果栈B不为空,则直接弹出栈顶元素作为出队元素,如果栈B为空,则先向栈B内压入栈A 阅读全文
posted @ 2022-01-05 00:10 ProbablyTrue 阅读(27) 评论(0) 推荐(0) 编辑
摘要:力扣第2题:两数相加 首先梳理加法流程:看作三个链表相加,加数链表L1,被加数链表L2,进位链表LP,结果保存在LF链表中。为进位链表初始化一个节点,val = 0为结果链表新建一个节点LF循环体{处理L1和L2可能存在的空指针LF.val = L1.val + L2.val + LP.val若 L 阅读全文
posted @ 2022-01-04 17:08 ProbablyTrue 阅读(70) 评论(0) 推荐(0) 编辑
摘要:力扣第1题:两数之和 首先想到一种解法:下标组合作为key,对应两数之和作为value,遍历求和后存到hashmap,最后查询value对应的key;但是题目中有说:“可以假设每种输入只会对应一个答案”,即该数组任意两元素求和结果都唯一,则可以调整将两数之和作为key,下标组合作为对应的value, 阅读全文
posted @ 2022-01-04 15:46 ProbablyTrue 阅读(97) 评论(0) 推荐(0) 编辑
摘要:新年第一天上班,翻翻帖子收了不小刺激 人家3月份从化学专业转行,自学python和Go年底就已经可以在力扣上刷Hard打竞赛了 反观自己,所谓的5年开发经验,第一道题就卡住,像个DD 曾几何时也是位能手写PL/0编译器的选手,如今面试连个数组去重都能紧张的说不出来 新年新气象,3月底之前用java提 阅读全文
posted @ 2022-01-04 10:17 ProbablyTrue 阅读(237) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示