自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (4)
  • 收藏
  • 关注

原创 python intern 机制学习和思考

intern机制

2022-05-11 16:38:58 6465

原创 链表--LeetCode 203、移除链表元素

1、题目给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。输入:head = [1,2,6,3,4,5,6], val = 6输出:[1,2,3,4,5]2、解答直接遍历法:链表遍历即可递归法:这道题和翻转链表类似。class Solution(object): def removeElements(self, head, val): """ 顺序遍历法

2021-08-24 21:17:06 94

原创 数组--Leetcode 27. 移除元素

1、题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。2、解答直接遍历法:类似283道题目逻辑一样,把不等于val的元素移动到数组左边即可。双指针法:这个就是左右两边同时遍历数组,移动然后把右边不等于val的值移动到左边,左边等于val的元素移动到右边。

2021-08-23 22:03:09 104

原创 数组--LeetCode 283. 移动零

1、题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]2、解答直接遍历法:直接遍历把非零的数字移动到数组左边即可。class Solution(object): def moveZeroes(self, nums): """ 直接遍历法 :type nums: List[int] :rtype: None

2021-08-23 22:02:17 81

原创 数组--LeetCode 485. 最大连续 1 的个数

1、题目给定一个二进制数组, 计算其中最大连续 1 的个数。示例:输入:[1,1,0,1,1,1]输出:3解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.2、解答直接遍历法:直接遍历计算每次连续1的个数即可。class Solution(object): def findMaxConsecutiveOnes(self, nums): """ 直接遍历 :type nums: List[int]

2021-08-23 22:01:28 53

原创 LeetCode 268. 丢失的数字

1、题目给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。2、解答求和法:这个其实比较简单,注意到数组中没有重复的数字,所以求和相减就行。class Solution(object): def miss

2021-08-17 22:15:53 58

原创 LeetCode 264. 丑数 II

1、题目给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。2、解答动态规划:对于第n个丑数,就是前面n-1个丑数与[2、3、5]相乘对应的最小值。但是这里有可以优化的点就是我们不需要把前面n-1个丑数都遍历一遍,而是可以考虑记录已经遍历过的数。然后考虑丑数其实就是这些质因数相乘所得,那么可以

2021-08-16 22:13:02 40

原创 LeetCode 234. 回文链表

1、题目请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false2、解答这道题其实要想清楚如何判断是否回文。有两种思路,一种就是从首尾两端一一对比;一种是找到中间位置,然后比较前后两部分。前后指针法:就是把链表转换成数组,然后比较数组是否回文。栈空间法:这个也是思路一的实现,只不过借用了栈。递归法:这个算比较巧妙吧,递归找到链表结尾,然后根据递归的特性,反过来遍历这个链表。快慢指针法:前面三个是思路一的实现,这种事思路二的实现。维护快慢两个指针,然后找到中间位

2021-08-12 21:36:05 54

原创 LeetCode231. 2 的幂

1、题目给你一个整数 n,请你判断该整数是否是 2 的幂次方。如果是,返回 true ;否则,返回 false 。如果存在一个整数 x 使得 n == 2x ,则认为 n 是 2 的幂次方。示例 1:输入:n = 1输出:true解释:20 = 12、解答位运算法:如果n是2 的幂次方的整数,那么肯定有n&(n-1)=0,因为n相对于(n-1)来说进了一位。其实还能观察到n对应的二进制其实只有一个1.二分法:这个就是二分查找法。class Solution(obj

2021-08-11 21:10:47 45

原创 LeetCode217. 存在重复元素

1、题目给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,1,1,3,3,4,3,2,4,2]输出: true2、解答排序法:直接排序,然后连续的元素有相同的就是有重复元素。去重法:使用set去重后的长度要是小于原始数组长度就是有重复元素。其实还有其他方法,但是整体思路是这两个方向。class Solution(object): def containsD

2021-08-10 21:17:24 60

原创 LeetCode215. 数组中的第K个最大元素

1、题目给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 42、解答暴力法:直接调用数组排序算法,然后返回对应的元素即可。快速排序法:这个就是自己写一下快排算法。快排分为单指针遍历和双指针遍历。但是思想都是选这一个元素作为基础节点,然后遍历数组把小于基础节点的元素放到左边,大于的放到右边。双指针遍历需要注意的

2021-08-09 23:10:51 87

原创 LeetCode209. 长度最小的子数组

1、题目给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。示例 1:输入:target = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。2、解答暴力法:遍历数组,固定子数组的第一个元素,然后

2021-08-02 21:47:58 69

原创 LeetCode 206. 反转链表

1、题目给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]2、解答解答链表的题目最好是好好画一下。理解题目描述的场景。输入链表:1-》2-》3-》4-》5期待的输出是:5-》4-》3-》2-》1开始遍历链表:当前节点cur是1,他的next是2,那反转的意思是,将1的next指向None,然后移动当前节点到2,2的next是3,反转就是把2的next指向之前的1。这样梳理一下其实我们需要保存三个遍

2021-07-29 22:16:02 56

原创 LeetCode 200. 岛屿数量

1、题目给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [ ["1","1","1","1","0"], ["1","1","0","1","0"], ["1","1","0","0","0"], ["0","0","0","0","0"]]输出:12、解答这道题是一道很经

2021-07-29 00:17:56 58

原创 LeetCode 49、字母异位词分组

1、题目:字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]2、解答排序法:对每个字符串排序,然后具有相同字母的单词排序后得到的字符串是相同的,然后借用字典将这些排序后的字符串作为key,对应的字母异位词作为value。哈希

2021-07-27 21:26:57 49

原创 LeetCode 107. 二叉树的层序遍历 II

1、题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7输出: [ [15,7], [9,20], [3]]2、解答这道题和102题是差不多的,就是最后结果翻转一下就行了,所以还是之前的解法。 def levelOrderBottom(self, root): "

2021-07-26 20:30:56 53

原创 leetcode 102. 二叉树的层序遍历

1、题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7输出: [ [3], [9,20], [15,7]]2、解答BFS:广度优先遍历,对于层次遍历来说,BFS是使用最多的。需要使用一个队列来维护每次遍历的每一层的节点。DFS:深度优先遍历,这个用来进行层次遍历就是得知道每次遍历的

2021-07-25 19:54:05 53

原创 LeetCode 90. 子集 II

1、题目给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]2、解答这道题和之前78题子集那题一样的解法,就是多了一点需要注意,可以有重复的元素,所以需要对子集进行去重,两种去重方法,一种是在子集获得后插入到结果集的时候去重,一种是先不管重复的子集,获得所有结果后再去重,这

2021-07-22 21:59:33 116

原创 leetcode 78、子集

1、题目给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]2、解答暴力法:说是暴力法,其实我个人觉得这种方法是最好的。遍历nums的每个元素,将这个元素插入到之前已经获得的子集中的每一个元素里面去就会获得新的元素,那么结果集就是res[i] =res[i-1]

2021-07-21 22:43:50 77

原创 LeetCode 77、组合

1、题目给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]2、解答这道题其实比较好想到的就是使用递归。递归:遍历[begin,n],每次插入一个数,初始状态begin是1,然后求[begin+1, n]中长度为k-1的数组。递归跳出的逻辑是递归链得到的数组长度等于K。

2021-07-21 00:09:03 79

原创 自然语言处理入门学习(二)--字典树

字典树1、字典树字典树:trie树,用树结构来描述词典。树状结构每条边代表一个字符,字符串是一条路径节点可以存储value单词对应的是路径字典树相对于普通树的结构来说,就是类似带权重的树,只是权重不是数字,而是每一个字符。同时当节点value不为none时,表示从根节点到该节点的路径对应的字符串就是一个词。实现方案:节点:就和二叉树类似,有个节点类,但是字典树节点需要保存子树和value.子树需要保存路径上的字符,显然用dict来实现。树:主要要实现查询功能,其实就是按照查询字符来

2021-07-20 23:26:53 892

原创 自然语言处理入门学习--切分算法

划分算法分词算法的核心是速度。1、完全切分完全切分:找出一段文本中所有的分词。主要这实际上不是标准意义上的分词,因为这个算法会把单个字全部输出,并没有考虑到是否是有意义的词语序列。例如:“北京大学”切分得到的结果是[‘北’, ‘北京’, ‘北京大学’, ‘京’, ‘大’, ‘大学’, ‘学’]。代码实现:遍历文本中词是否在词典中即可。from load_dictionary import load_dictionarydef fully_segment(text, dic): wor

2021-07-19 22:17:16 1087

原创 leetcode 56、合并区间

1、题目以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].2、解答排序法:先将集合按照数组0位元素排序,然后遍历

2021-07-19 22:14:31 36

原创 聊聊几句吧

程序员菜鸟一个,以前读书的时候感觉都没怎么认真思考过,当程序员有没有啥目标,都是上课学习考试,也没有花心思想想这份职业应该怎么做让自己变得更好。现在一晃,毕业也4年了,感觉也没啥积累沉淀,也没啥副业,工作也能cover住,但是向上爬感觉有点困难。挣扎了半年,感觉还是要慢慢做点改变,也不为了说一定多牛逼,就想让自己以后回忆起来,至少还是干了一些正事,不是在每天摸鱼吧。聊一下自己的基本情况吧,本来毕业的时候找的Java岗,哪知道去公司分到了一个支撑岗,然后一年后转岗跑去通信行业当个小兵,居然和硬件打交道,不

2021-07-19 22:09:39 173

SSD9 excise 答案

这里是卡耐基梅隆大学SSD9的excise答案,内容完整,答案完善,希望对大家有用。

2014-06-19

国软XML实验作业第二次作业

国软 XML实验 第二次作业 桂浩老师的课

2014-05-17

武汉大学国软网络及分布式计算SSD8选择题

网上所有的SSD8选择题,完全,希望能给学弟学妹帮助

2014-05-17

c语言解惑 pdf

《c语言解惑》 pdf文件 电子书 自学必备

2013-09-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除