- 博客(15)
- 资源 (8)
- 收藏
- 关注
原创 排序算法(一)
排序算法(一)此文档主要包含选择排序、插入排序、冒泡排序、归并排序、快排还有堆排序的内容。文章目录排序算法(一)选择排序思想code总结插入排序思想code总结冒泡排序思路:codeBetter Version总结归并排序思想code总结快排思路code总结Radix Sort(基数排序)堆排序思路code总结选择排序思想选择排序算法的思路为在当前的n个数组中选择出来最大(最小)的那一个,然后将其与其应该在的位置的元素进行交换。然后再将第二大(小)的元素放到其应该在的位置。codedef s
2022-01-11 21:40:07 594
原创 heapq源码解读(四)
Python heapq源码解读计划(四)本文是解读python heapq 库的最后一节,主要分析的函数为nlargest和nsmallest这两个函数。nlargest函数的实现nlargest(n,iterable,key=None)这个函数的功能为返回数据集中最大的n个元素,等价于sorted(iterable, key=key, reverse=True)[:n]。n = 1时的处理当n = 1时,其实就是找出这个list中的最大值。这和使用max()函数是一样的,但是max()函数不接
2021-12-11 21:27:30 678 1
原创 heapq源码解读(三)
Python heapq源码解读计划(三)本文是解读heapq的第三节,主要来讲解一下heappop、heappush、heappushpop、heapreplace这四个个函数的具体实现。heappop函数的实现heappop这个函数的具体作用为将heap内的最小值pop掉,并且返回这个最小值,与此同时这个heap还是保持在最小堆的状态。首先,heapq的堆使用list来实现的,所以list可以执行的操作在这里也是可以使用的。lastelt = heap.pop()所以heappop的源码会
2021-12-10 22:10:43 1206
原创 heapq源码解读(二)
Python heapq源码解读计划(一)本文为解读heapq部分的第二节,主要是探索heapq中的heapify()函数具体是如何实现的。前言首先来回顾一下,heapq中的heap是如何构造的。python heapq的heap使用数组实现,从0开始计数。对于所有的k,都有 heap[k] <= heap[2 * k+1] 和 heap[k] <= heap[2 * k + 2]。源码解读heapify(x)源码:def heapify(x): """Transform
2021-12-09 23:23:26 808
原创 12.5周赛复盘
12.5周赛复盘5942.找出3位偶数题目链接:https://leetcode-cn.com/problems/finding-3-digit-even-numbers/解题思路:先是对数组做一个处理,因为是构造三位偶数,所以一个数字出现的次数超过3时,就当其出现了三次即可(否则会超时)。因为结果需要排序,所以先对处理好的数组做个排序即可。利用回溯算法构造三位偶数。python解法:class Solution: def findEvenNumbers(self,
2021-12-09 15:50:57 701
原创 5-最长回文字符串
最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”解法动态规划可以解决掉这个问题。这个问题很经典。解决这个问题的动态规划是一个二维的动态规划。d[i][j]代表着字符串的i-j,所以整个过程可以划分为三个状态:长.
2021-10-16 17:10:10 140
原创 4.寻找两个正序数组的中位数
4. 寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.
2021-10-15 21:55:30 67
原创 3.无重复字符的最长子串
3.无重复字符的最长子串给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串
2021-10-14 17:11:25 176
原创 2.两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例一:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9], l
2021-10-13 11:49:47 72
原创 1. 两数之和
给定一个整数数组 `nums`和一个整数目标值 `target`,请你在该数组中找出 和为目标值 `target` 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例一输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例二输入:nums = [3,2...
2021-10-13 11:21:53 59
原创 BFS初入门(层序遍历树及其类似题目)
之前看了很多网络博主写的BFS解题思想什么的,我觉得都不如直接来看题来的直接。BFS就是用队列的思想来实现的。我本身对这个没什么概念,近期翻看《算法图解》的时候看到了里面的讲解,才对这个思想有了一个初步的理解。我选用了层序遍历树这道题作为例子,是因为我觉得这道题比较经典,我在看完《算法图解》后第一时间能想到的题目就是这个题目。我是使用的循环方法而非递归的方法。大致的思路就是用while循环,当队列的queue list不为空时就一直循环下去。然后在每一次循环中我们都要用当前queue中的节点的子节点
2021-09-05 14:47:05 126
原创 《机器学习实战》Chapter 3 决策树 python3.7代码勘误
《机器学习实战》Chapter 3 决策树 python3.7代码勘误错误1:TypeError: ‘dict_keys’ object is not subscriptable这是因为在python3中keys不允许切片,先转List再切片就好了只要将以下几行代码:line14 line24 line46:firstStr = myTree.keys()[0]改为:firstStr = list(myTree.keys())[0] 即可。...
2020-09-23 12:01:59 208
原创 《机器学习实战》Chapter 2 KNN部分 python3.7代码勘误。
Chapter 2 KNN因为这本书写了很长时间了,我只是对照着这本书在学习一些机器学习的基础知识而已。顺便勘一下误。错误一:ValueError: invalid literal for int() with base 10: ‘largeDoses’首先这里是文件调用错了,应该调用datingDataSet2.txt剩下的是一个python版本不同造成的问题:如:错误二:iteritems变为items把iteritems变为items即可错误三:NameError: name ‘raw_
2020-09-19 13:58:59 156
原创 基于LSTM的光伏发电预测
本文是博主的《机器学习》课程的作业,很简单,没有涉及到什么十分高深的内容,最终的实现是调用了库。我也是一个新手,希望大家多多包容~数据我会后面上传,我直接上传原数据,处理数据的过程我感觉也是很有成就感的,大家自己处理数据试试吧!数据下载地址:https://download.csdn.net/download/qq_37511129/11356993数据处理首先我们...
2019-07-15 16:47:37 13576 30
opencv3.2.tar
2019-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人