专栏首页曲奇泡芙LeetCode 第一页题目

LeetCode 第一页题目

点击关注不迷路

最近用一些碎片时间刷了LeetCode第一页的题目(https://leetcode.com),除了一些面试中曝光率较高的题目外,有几个题目挺有意思的,恰逢考试季挑出来给大家思考一下。

Median of Two Sorted Arrays

给定两个排序的整数数组,长度分别为m和n,求这两个数组所有数的中位数,要求时间复杂度为O(log(m+n))。

比如:nums1=[1, 2], nums2=[3, 4],中位数为 2.5

时间复杂度的要求,使得先合并数组再求中位数的O(m+n)方法并不可行。

Divide Two Integers

给两个32位有符号整数a和b,计算a/b取整,要求算法中不使用乘法,除法和模运算

比如:a = 7, b = -3,结果为:-2

Substring with Concatenation of All Words

给一个字符串s,以及一个单词列表words,其中所有单词等长度。在s中找出所有的下标i,满足s[i]开始的子串是由words中的所有单词某种排列组成(所有单词有且出现出现一次)。

比如 s = "barfoothefoobarman", words = ["foo","bar"]

合法的下标为: 0 和 9

First Missing Positive

给一个无序的整数数组,找一个最小的未出现的正整数。要求:时间复杂度O(n) 且 仅使用常量系数的额外内存

比如输入为:[3,4,-1,1],最小未出现的正整数为:2

Jump Game II

给一个非负整数数组,每个数组的元素表示你从该位置最多可以往前跳多少个位置,问从第一个位置跳到最后一个位置最少需要几跳?

比如输入为:[2,3,1,1,4] ,最小需要2跳到达最后一个位置。

该题存在多种不同时间复杂度的解法。

第一页的其他题目,除开一些考察编码能力比较直接的题目,有不少属于同类型题目,这样的题目在面试中通常会作为一个问题的延伸问题聊到,比如:

数组找几个数和为指定数的问题:"Two Sum", "3Sum", "3Sum Closest", "4Sum";

排列组合问题:

"Combination Sum", "Combination Sum II",

"Permutations", "Permutations II", "Next Permutation"

字符串模式匹配问题:"Regular Expression Matching", "Wildcard Matching"

二分查找问题:"Search in Rotated Sorted Array", "Find First and Last Position of Element in Sorted Aarray", "Search Insert Position"

括号序列问题:"Valid Parentheses", "Longest Valid Parentheses", "Generate Parentheses"

链表操作问题:"Remove Nth Node From End of List", "Merge Two Sorted Lists", "Swap Nodes in Pairs", "Reverse Nodes in k-Group"

考察算法的题目往往不限于一种解法,一个题目可能会有不同时间/空间复杂度的多种不同解法,有时候最优解的算法也可能存在多种,这样的题目也经常会在面试中使用以提高题目区分度。平时自己做完的题目,再看看别人的解法经常会有不同的收获。我leetcode的一些代码checkin在了github上,欢迎交流:https://github.com/Jamesweng/leetcode 。

End

更多干货

本文分享自微信公众号 - 曲奇泡芙(YummyCookiePuff),作者:曲奇泡芙

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Leetcode 第二、三页题目精选

    做Leetcode的过程也是一个寻找趣味题目的过程。Leetcode的第二页及第三页这100题断断续续做了有段时间了,趁周末时间把它close掉了。几个有意思的...

    曲奇泡芙
  • 教会AI认识麻将牌之实践篇

    说起打麻将我一直是处于比较业余并且不思进取的水平,各个地方的麻将规则不一,繁琐的规则也懒得放脑袋里记忆了,于是每次跟朋友打麻将都是现场临时约定规则,怎么简单怎么...

    曲奇泡芙
  • GraphQL + Space Cloud 简化你的API设计

    服务端API的设计与开发,为客户端提供产品业务所需要的各种功能和数据接口。随着APP产品的迭代更新,APP Server提供的接口往往也会进行多个版本的迭代更新...

    曲奇泡芙
  • android 在一个应用中启动另一个应用android 在一个应用中启动另一个应用

    在程序开发过程当中,常遇到需要启动另一个应用程序的情况,比如在点击软件的一个按钮可以打开地图软件。

    一个会写诗的程序员
  • 数据定义: CREATE、DROP、ALTER

    用户1112962
  • React Native+React Navigation+Redux开发实用教程

    为了帮助大家快速上手在React Native与Redux开发,在这本文中将向大家介绍如何在React Native中使用Redux?,以及一些必备基础以及高级...

    CrazyCodeBoy
  • 来自AI专家的13篇必读论文

    在“顶尖人工智能书籍”阅读榜单大受欢迎之后,我们联系了一些社区人士,找出他们认为每个人都应该阅读的论文!

    石晓文
  • 大数据建模方法的比较

    在DT时代,互联网,智能设备和其他形式的信息技术的爆炸性增长使得数据以同样令人印象深刻的速度增长。这个时代的挑战似乎是如何对所有这些数据进行分类,组织和存储。

    liuxuewen
  • pytorch基础知识-GPU加速

    一般我们在使用笔记本电脑或者台式机进行神经网络结构计算时,默认使用cpu计算,但cpu运算速度十分有限,一个专门搞学术研究的人常配备一个英伟达显卡来加速计算。

    用户6719124
  • 蓝桥楼赛第23期-解析用户名字符串

    在社交和即时通讯应用中,@ 字符通常用于提醒某人。例如,你在楼赛取得了好成绩,拿了奖品,激动地发送了一条微博并 @实验楼官方微博。本次挑战中,我们希望实现一个函...

    Spaceack

扫码关注云+社区

领取腾讯云代金券