31-35

31、两个链表的第一个公共节点
之前在leetcode上刷到过,刷的时候不会做,后来参考了别人的写法,把其中一个链表的尾节点指向另一个链表的头节点,这样就转化成了求一个环形链表的入环节点。但是后来看了下最快的办法,真的是又快又简洁,在这里贴上代码:

class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        p1, p2 = headA, headB
        while(p1 != p2):
            p1 = headB if p1 == None else p1.next
            p2 = headA if p2 == None else p2.next
        return p1

32、第一个只出现一次的字符
在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写。
能想到的只有遍历两遍,第一遍用字典计数,第二遍找第一个只出现一次的字符。

class Solution:
    def FirstNotRepeatingChar(self, s):
        dic = {}
        for i in s:
            print(i)
            dic[i] = dic.get(i, 0) + 1
        for i in s:
            if dic[i] == 1:
                return i
        else:
            return -1

33、数据中的逆序对
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007。
我想到的是递归求逆序对的个数,递归的时候可以像求斐波那契数列一样用动态规划优化一下。但是想想其实跟直接遍历的时间复杂度是一样的。看了下别人的答案,用了归并排序之类的,关于排序算法之前没仔细看过,只知道冒泡、选择、插入算法。刷完剑指offer再去详细了解一下,先马住。贴上自己写的递归版答案

class Solution:
    def InversePairs(self, data):
        # write code here
        memory = [0]
        def getnumsofpairs(data):
            for i in range(1, len(data)):
                count = 0
                for j in range(i):
                    if data[j] > data[i]:
                        count += 1
                memory.append(memory[i-1]+count)
            return memory[-1]
        return getnumsofpairs(data)%1000000007

34、连续子数组最大和
这题也在leetcode中刷过

class Solution(object):
    def maxSubArray(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        all_max = nums[0]
        cur = 0
        for i in nums:
            cur = max(cur+i, i)
            all_max = max(all_max, cur)
        return all_max

35、最小的k个数
最笨的办法就是写个排序。思考了一下如何优化,可以用一个列表先储存前k个数,然后对剩下的数开始遍历,如果小于列表的最大值,那么列表的最大值替换为k。看了下别人的答案,思路是一样的,但是是用最大堆来储存k个数,我还不知道堆是什么😔,之前了解了一点排序算法,有个最大堆排序没仔细看,待会去看一下。先把列表的答案贴上。

class Solution:
    def GetLeastNumbers_Solution(self, tinput, k):
        # write code here
        temp = tinput[:k]
        for i in tinput[k:]:
            if i < max(temp):
                temp[temp.index(max(temp))] = i
        return temp
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 227,797评论 6 531
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,179评论 3 414
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 175,628评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,642评论 1 309
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,444评论 6 405
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,948评论 1 321
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,040评论 3 440
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,185评论 0 287
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,717评论 1 333
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,602评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,794评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,316评论 5 358
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,045评论 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,418评论 0 26
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,671评论 1 281
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,414评论 3 390
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,750评论 2 370

推荐阅读更多精彩内容

  • 算法思想贪心思想双指针排序快速选择堆排序桶排序荷兰国旗问题二分查找搜索BFSDFSBacktracking分治动态...
    第六象限阅读 3,154评论 0 0
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,877评论 0 13
  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 12,544评论 0 15
  • 千里为重,广大为庆,这两个字确实很重庆。因为抖音,重庆如今沦为了网红魔都。可是,在我心中,它应该是一个街巷...
    猫猫love红豆粥阅读 339评论 1 0
  • 昨夜风急雨密 帘外骤起霹雳 魂断心惊翻身起 悚然颤栗 开手机 披寒衣 倚窗独立 望夜空 忆故里 思不尽二老家乡戏 ...
    晴天一鹤zhao阅读 203评论 0 2