leecode刷题(10)-- 旋转图像 旋转图像 描述: 给定一个 n × n 的二维矩阵表示一个图像。 将图像顺时针旋转 90 度。 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10 , [15,14,12,16] ], 原地旋转输入矩阵,使其变为: [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11
来自Leetcode上的讲解: 关于return L1的个人理解: 递归的核心在于,我只关注我这一层要干什么,返回什么,至于我的下一层(规模减1),我不管,我就是甩手掌柜. 好,现在我要merge L1,L2.我要怎么做?
目录 第1题:有序数组的平方 第2题:增减字符串匹配 第3题:数字的补数 第4题:Nim游戏 第5题:删除字符串中的所有相邻重复项 第6题:除数博弈 第7题:转换成小写字母 第8题:生成每种字符都是奇数个的字符串 第9题:按奇偶排序数组 第10题:转置矩阵 ---- 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。 第1题:有序数组的平方 试题要求如下: ? ---- 第6题:除数博弈 试题要求如下: ? ---- 第10题:转置矩阵 试题要求如下: ? 回答(C语言): /** * Return an array of arrays of size *returnSize.
✨作者:@平凡的人1 ✨专栏:《小菜鸟爱刷题》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 今天是考四六级的日子,不知道大家考得怎么样呀? 今天这篇博客的主题是:Leetcode刷题。分享 的过程也方便自己的复习。快期末了,更新的速度自然也就慢下来了,希望大家一起加油进步。**如果觉得不错的话,记得点赞+收藏哦! 下面,上手代码: 提交运行: 69. x 的平方根 这道题刚开始一看是觉得应该会挺简单的。 比较简单 提交运行: 342. 4的幂 此题可以采用递归做法。这里提供一个非递归的做法: 提交运行: 414. 第三大的数 题目要求很简单,找出第三大的数。 两整数相加 我觉得这才应该是leetcode的第一道题把。前面太难了点 ---- 总结 本次主要内容是10道leetcode 的简单题,不知道你学会了没有。
大家好,今天给大家介绍一份 Github 上万 star 的刷题笔记,看完,直接秒杀大部分中等难度 Leetcode 题目 作者是一位谷歌工程师。 他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code 上的题目,几个月的时间,刷了几百道题目。 入职前,闲暇的时候,他突然想到,自己刷了那么多题,而且对很多题目的解法有着总结,为何不把这些题目归纳总结一些,做成一个便于后来者阅读学习的电子书呢? 引用他的话来说: 本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷题时常用的技巧。我把题目精简到了101道,一是呼应了本书的标题,二是不想让读者阅读和练习时间过长。 这么做不太好的一点是,如果只练习这101道题。因此在每一章节的末尾,我都加上了一些推荐的练习题,并给出了一些解法提示,希望读者在理解每一章节后把练习题也完成。
这个时候,就不得不提有一个神奇的网站叫 LeetCode,上边搜集了一大堆的算法题,从简到难应有尽有。 可以说,你如果能把这些题做到游刃有余,哪么一般大公司面试的算法题,比如手撕红黑树啥的,真的是手拿把攥。 因为它是个网站的缘故,我们刷题过程中避免不了要打开浏览器,可是如果你想在上班过程中摸鱼的话,打开浏览器光明正大刷有的时候可能不太好,哪怎么办呢? 最近发现个上班刷题摸鱼神器VS Code刷题插件——vscode-leetcode,接下来我就推荐给大家,通过它只需要在VSCode中你就可以完成登录解题等一系列步骤而不需要开个浏览器。 ? 综上,是不是感觉刷题的欲望都高了呢?欢迎留言来讨论哈。
一、最长回文字符串 题目解析 这道题,给定一个字符串,让我们找出其最长的回文子串的长度 题目描述很简单,直接来看这道题的思路 算法思路 对于这道题,有很多种解法 动态规划 车拉马算法:这样一个专门解决最长回文字符串的一种思想 : 这道题可以使用动态规划,博主在做这道题时就是使用这种思路; 也可以使用一点小小的贪心,(不要被名字吓到了,其实很简单的) 现在来看第一种思路: 这里给了数组paices,我们创建一个对应的数组dp 首先这道题暴力解法:双层遍历整个数组paices,依次找到利润最大值即可。 时间复杂度为O(n^2) 这里进行简单优化: 我们这里考虑在哪一天卖出即可。 算法思路 在初次看到这道题时,博主把它想成了广度优先遍历bfs(因为博主在做这道题之前刚做过一道也是求从某个位置到另外一个位置有多少种解法) 但是,使用BFS来解决这道题,我们会发现实现起来特别麻烦(相当于模拟实现了整个过程 dp[i][j] = dp[i][j-1] + dp[i-1][j]; } } cout<<dp[n][m]<<endl; return 0; } 到这里,进入刷题就结束了
注意:head本身指向链表第一个元素,在代码中head未被改变,运行后,head不一定指向第一个元素 而dummy是虚拟头结点,在第一次循环中dummy.next指向了第一个元素,而后续,并未改变虚拟头结点的指向,所以dummy.next始终指向的是第一个元素
思路一:哈希表 本题要找到满足条件的三个元素,当固定第一个元素a,则题目转化成找到b、c使得和为-a的问题,即与LeetCode刷题DAY 8:两数之和中问题一致,因此也可用哈希表的方法解决。 h_map[nums[j]]=j return list(set([tuple(t) for t in a])) 思路二:双指针 当对数组完成排序并固定第一个元素a,则题目与LeetCode刷题
//并且要先在*10之前判断,否则就溢出了 if (ret > INT_MAX / 10 || ret < INT_MIN / 10) { return 0; } ret = ret*10+x%10; x /=10; } return ret; } }; 题解: 定义ret为反转后的数,初始化为0 x%10取到最后一位上的数 x/10去掉最后一位上的数 相关解释: 开始的ret为0 x %10将原来x的最后一位取出来 例: x = 123 ret = 0 * 10 + 123 % 10 = 3 x = 12 ret = 3 * 10 + 12 % 10 = 30 + 2 = 32 x = 1 得到结果 ret = 32 * 10 + 1 % 10 = 321
集合框架中的HashTable,Stack,以及同步包装集合在高并发场景下都非常低效,java提供了并发包应对高并发场景。 我是李福春,我在准备面试,今天的问题是? java提供了哪些并发的容器?ConcurrentHashMap如何保证线程安全?
虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。 LeetCode收录了许多互联网公司的算法题目,被称为刷题神器,我虽然早有耳闻,不过却一直没有上面玩过。 下面是我刷 LeetCode 的一些收获,希望能够引诱大家有空时刷刷题目。 刷 LeetCode 的最大好处就是可以锻炼解决问题的思维能力,相信我,如何去思考本身也是一个需要不断学习和练习的技能。 因此刷题之外,还需要记住每种算法实现的时间复杂度和空间复杂度。最常用的是Big O notation。
平时自己也经常在leetcode刷题,所以,给大家推荐一款不用打开浏览器的刷题神奇。 开源最前线(ID:OpenSourceTop) 项目介绍来自:https://github.com/jdneo/vscode-leetcode LeetCode上面收集了各大公司的经典算法面试题,面试前刷一波最好不过了 ,今天要和大家分享的这个项目就是一个帮助大家快速刷LeetCode题目的VS Code刷题插件——vscode-leetcode,通过它只需要在VSCode中你就可以完成登录解题等一系列步骤而不需要开个浏览器
刷算法题对于算法理解会有好的帮助,比如leetcode上的题,看看上面的排名,就知道自己有多菜鸟了。 当然如果不想压力那么大自己悄悄刷题,也不是不可以,今天就给大家安利一下一款名叫leetcode的插件,可以直接显示在idea的编辑框内,还可以直接运行,有顺序有难度划分,相当方便。 3、打开左边插件栏,就可以看到可以登录退出等功能,可以看到算法题的内容,点击某一道题,即可显示详细内容。 4、点击运行符号,即可运行示例,确实很方便。 使用了一整子,刷算法确实方便多了,关键在于能够边学习理论还能直接在编辑器中运行实践。有了这么好用的插件,那还等什么,赶快去安装,有空就刷起来啦!
编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。
所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家聊的问题叫做正则表达式匹配,我们先来看题面: Given an input string (s) and a pattern (p), implement regular expression 题意 这道题属于典型的人狠话不多的问题,让我们动手实现一个简单的正则匹配算法。不过为了降低难度,这里需要匹配的只有两个特殊符号,一个符号是'.',表示可以匹配任意的单个字符。 输出: false 题解 这题要求的是完全匹配,而不是包含匹配。也就是说s串匹配完p串之后不能有剩余,比如刚好完全匹配才行。明确了这点之后,我们先来简化操作,假设不存在'*'这个特殊字符,只存在'.' 这句话看起来有些像是绕口令,但是却是这道题的精髓,如果看不懂的话,可以结合一下代码思考。 总之,就是以出否出现'*'为基点,分情况进行递归即可。
---- 木又同学2020年第10篇解题报告 leetcode第15题:三数之和 https://leetcode-cn.com/problems/3sum/ ---- 【题目】 给定一个包含 n 个整数的数组
CSDN话题挑战赛第2期 参赛话题:学习笔记 刷题打卡,第十天 题目一、707.设计链表 题目二、278.第一个错误的版本 题目三、98. 验证二叉搜索树 ---- 题目一、707.设计链表 原题链接:707.设计链表 题目描述: 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。 val); * obj.addAtIndex(index,val); * obj.deleteAtIndex(index); */ 提交结果: ---- 题目二、278.第一个错误的版本 原题链接 验证二叉搜索树 原题链接:98. 验证二叉搜索树 题目描述: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。