- 博客(310)
- 收藏
- 关注
原创 JSON基础知识
一、什么是json一、(4)JSONP教程Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略。什么是同源策略?它是由Netscape提出的一个著名的安全策略,现在所有支持 JavaScript 的浏览器都会使用这个策略。JSON 指的是 JavaScript 对象表示法(JavaScriptObje..
2021-08-31 21:39:21 917
原创 JAVA多线程学习总结
本文主要讲java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的线程函数用法、概述等。首先让我们来了解下在操作系统中进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。(线程是cpu调度的最小单位) 线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。 多进程是指
2021-08-28 22:16:27 254
原创 Leetcode栈刷题之:面试题0304.化栈为队
题目描述:实现一个MyQueue类,该类用两个栈来实现一个队列。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queue.pop(); // 返回 1queue.empty(); // 返回 false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/implement-queue-using-stac..
2021-03-21 21:05:44 257
原创 Leetcode栈系列之:844.比较含退格的字符串
题目描述:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。示例 1:输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。示例 3:输入:S = "a##c", T = "#a#c"输出:true.
2021-03-21 20:48:19 168
原创 Leetcode栈系列之:20.有效的括号
题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:true来源:力...
2021-03-21 20:11:12 256
原创 Leetcode栈系列之:1021.删除最外层括号
题目描述:有效括号字符串为空("")、"(" + A + ")"或A + B,其中A 和B都是有效的括号字符串,+代表字符串的连接。例如,"","()","(())()"和"(()(()))"都是有效的括号字符串。如果有效字符串S非空,且不存在将其拆分为S = A+B的方法,我们称其为原语(primitive),其中A 和B都是非空有效括号字符串。给出一个非空有效字符串S,考虑将其进行原语化分解,使得:S = P_1 + P_2 + ... + P_k,其中...
2021-03-20 23:33:17 94
原创 Leetcode栈系列之:1249.移除无效括号
题目描述:给你一个由 '('、')' 和小写字母组成的字符串 s。你需要从字符串中删除最少数目的 '(' 或者 ')'(可以删除任意位置的括号),使得剩下的「括号字符串」有效。请返回任意一个合法字符串。有效「括号字符串」应当符合以下任意一条要求:空字符串或只包含小写字母的字符串可以被写作AB(A连接B)的字符串,其中A和B都是有效「括号字符串」可以被写作(A)的字符串,其中A是一个有效的「括号字符串」示例 1:输入:s = "lee(t(c)o...
2021-03-20 23:16:27 257
原创 Leetcode栈系列:633.函数的独占时间
题目描述:给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间。每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用。日志是具有以下格式的字符串:function_id:start_or_end:timestamp。例如:"0:start:0"表示函数 0 从 0 时刻开始运行。"0:end:0"表示函数 0 在 0 时刻结束。函数的独占时间定义是在该方法中花费的时间,调用其他函数花费的时间不算该函数的独占时间。你需要根据函数的 Id...
2021-03-20 22:18:25 111
原创 Leetcode刷题之:969.煎饼排序
题目描述:给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。一次煎饼翻转的执行过程如下:选择一个整数 k ,1 <= k <= arr.length反转子数组 arr[0...k-1](下标从 0 开始)例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。以数组形式返回能使 arr 有序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在10 * arr.l.
2021-03-14 21:22:45 279
转载 Leetcode刷题之:860.柠檬水找零
题目描述:在柠檬水摊上,每一杯柠檬水的售价为5美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回true,否则返回 false。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5...
2021-03-14 21:10:17 179
原创 Leetcode刷题之:859亲密字符串
题目描述:给定两个由小写字母构成的字符串A和B,只要我们可以通过交换 A 中的两个字母得到与 B 相等的结果,就返回true;否则返回 false 。交换字母的定义是取两个下标 i 和 j (下标从 0 开始),只要 i!=j 就交换 A[i] 和 A[j] 处的字符。例如,在 "abcd" 中交换下标 0 和下标 2 的元素可以生成 "cbad" 。示例 1:输入: A = "ab", B = "ba"输出: true解释: 你可以交换 A[0] = 'a' 和 A[...
2021-03-14 20:51:23 127
原创 Leetcode刷题之:933.最近的请求次数
题目描述:写一个RecentCounter类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。示例:输入:["Rec...
2021-03-14 20:05:22 222 1
原创 Leetcode链表刷题之:138.复制带随机指针的链表
题目描述:给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random --> ..
2021-03-13 20:44:28 140
原创 Leetcode链表刷题之:86.分隔链表
题目描述:给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。你应当 保留 两个分区中每个节点的初始相对位置。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/partition-list解题思路及代码:### 解题思路对于此题而言,只需要构建两个新链表,一个保存小于X的结点,一个保存大于X的结点,再将两个链表进行连接即可。需要注意的是:1.
2021-03-12 19:00:58 164
原创 Leetcode链表刷题之:82.删除排序链表中的重复元素
题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现的数字。示例1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例2:输入: 1->1->1->2->3输出: 2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-...
2021-03-09 21:16:50 132
原创 Leetcode链表刷题之:83.删除排序链表中的重复元素
题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list解题思路及代码:### 解题思路题目给出的链表是排好序的链...
2021-03-09 17:26:17 83
原创 Leetcode链表刷题之:19.删除链表的倒数第N个结点
题目描述:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。解题思路及代码:### 解题思路删除倒数第N个结点,即删除正数第Len(链表) - N个结点 + 1个结点,设为M。1.考虑到可能原始链表只有一个结点,所以首先设置虚拟头结点;2.从虚拟头结点开始,正向前进M步,找到待删除链表的前一个结点;3.完成删除链表的操作p.next = p.next.next即可。### 代码```python# Definition for singly-linked li..
2021-03-09 16:45:54 154
原创 Leetcode链表刷题之:24.两两交换链表中的节点
题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:ead = []输出:[]示例 3:输入:head = [1]输出:[1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs解题思路及代码:这道题目总体思.
2021-03-09 15:23:25 181 2
原创 Leetcode链表刷题之:61.旋转链表
题目描述:给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。示例1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例2:输入: 0->1-&g...
2021-03-06 21:38:50 239
原创 Leetcode链表刷题之:25.K个一组反转链表
题目描述:给你一个链表,每k个节点一组进行翻转,请你返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-nodes-in-k-group解题思路及代码:# Definition for singly-linked list.# class ListNode(object):# ...
2021-03-06 21:10:46 113
原创 Leetcode链表刷题之:92.反转链表的中间一段
题目描述:反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤m≤n≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list-ii解题思路与代码:### 解题思路...
2021-03-06 20:10:55 396
原创 Leetcode链表刷题之:206.反转链表
题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-linked-list解法一:原地旋转### 解题思路原地旋转链表,可以构建两个指针,一个指向当前结点的前一.
2021-03-05 22:06:20 168
原创 Leetcode链表题之:202.快乐数
题目描述:编写一个算法来判断一个数 n 是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为1,那么这个数就是快乐数。如果 n 是快乐数就返回 true ;不是,则返回 false 。示例 1:输入:19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 10012 + 02 + 02 = 1示...
2021-03-05 14:01:12 140
原创 Leetcode链表题之:142环形链表的入环点
题目描述:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/linked-list-cycle-ii解题思路及代码:...
2021-03-05 11:31:43 102
原创 Leetcode链表题之:141.环形链表
题目描述:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl
2021-03-05 09:24:25 124 1
原创 Python基础知识回顾(上)
1.简介Python 是一种通用编程语言,其在科学计算和机器学习领域具有广泛的应用。如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。本 Python 入门系列体验就是为这样的初学者精心准备的。本部分包含以下内容:变量、运算符与数据类型 注释 运算符 变量和赋值 数据类型与转换 print() 函数 位运算 原码、反码和补码 按位非操作 ~ 按位与操作 & 按位或操作 | 按位异或操作 ^
2021-02-04 16:41:37 137 1
原创 剑指offer-二叉树的镜像
题目描述:请完成一个函数,输入一个二叉树,该函数输出它的镜像,即交换树的所有左右子节点。解决方案:辅助栈使用栈的数据结构来辅助树进行镜像的完成首先在栈中加入根节点(节点为空,返回Null),将节点出栈其次,将节点的左右子节点入栈然后,将左右节点交换依次循环以上步骤,直到栈空时,退出,返回根节点(镜像完成)解决代码如下:# Definition for a binary tree node.# class TreeNode(object):# def __init__(se
2021-02-03 16:41:33 61
原创 leetcode——括号匹配系列问题
1.有效的括号题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例:输入: “()[]{}”输出: true输入: “(]”输出: false解决方法:借用堆栈的后进先出的方法,进行对用括号的匹配,对左边括号进入栈,遇到右边括号时候,栈出栈,判断出栈括号是否与右边括号相同。具体代码如下:class Solu
2021-02-03 16:40:47 664
原创 Leetcode242-有效的字母异位词
## 给定两个字符串s和t,编写函数判断t是否是s的字母异位词。示例:输入: s = "anagram", t = "nagaram"输出: true输入: s = "rat", t = "car"输出: false代码如下:方法一:```pythonclass Solution: def isAnagram(self, s: str, t: str) -> bool: if len(s) != len(t): return False...
2021-02-03 16:39:22 88
原创 面试题:从多层嵌套的list中取出单个元素
假设有一个多层嵌套的list:[ 1, [2, 3], 4, [5, 6, 7]],从中取出单个元素,组成一个新的list。解题思路:很明显,采用递归的方法,在一个遍历原始list的for循环中,判断该遍历的是元素还是list,如果是元素则直接append,如果是list则调用函数进行递归。代码如下:result = []def solve_list(list): for s in list: if type(s) != list: result.append(s) else:
2021-02-03 16:37:10 1811
原创 Leetcode数据结构学习之—反转链表(python解决)
题目链接:Leetcode206-反转链表题目描述:对于一个无头结点的链表,对该链表进行反转,得到原链表的逆序排列。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解法一:原地反转首先将原始链表的头结点进行转换,即头结点变成尾结点,将头结点的next指向为None。进而对头结点后续的结点一一进行反转,即将该当前结点的next指向前一个结点。当遍历完所有结点后,对最后一个结点的nex
2021-02-03 16:32:43 148
原创 可解释的机器学习库—SHAP
1.SHAP介绍SHAP(SHapley Additive exPlanations),是Python开发的一个“模型解释”包,它可以解释任何机器学习模型的输出。 所有的特征都被视为“贡献者”。 对于每个预测样本,模型都产生一个预测值,SHAP value就是该样本中每个特征所分配到的数值。 SHAP值从预测中把每一个特征的影响分解出来,可应用于如下场景中:模型认为银行不应该给某人放贷,但是法律上需要银行给出每一笔拒绝放贷的原因。 医务人员想要确定对不同的病人而言,分别是哪些因素导致他们有患某
2020-11-09 16:12:02 14420 4
原创 特征筛选之—IV值
一.定义IV(Infromation Value),信息价值,用来表示特征对目标预测的贡献程度,即特征的预测能力,一般来说,IV值越高,该特征的预测能力越强,信息贡献程度越高。二.限定条件IV值的计算有一定的限定条件:(1)面向的任务必须是有监督的任务;(2)预测目标必须是二分类的。三.IV取值区间及常用评价基准IV值的取值区间为:[0,正无穷)。IV值取值含义:(1)IV<0.02:无用特征(2)0.02<IV<0.1:弱价值特征(3)0.1&
2020-11-06 18:23:14 28675
原创 Project:文本抄袭自动检测分析
项目简介:通过分析不同机构发布的⽂章,判断是否有⽂章抄袭的情况,并找到原⽂和抄袭的⽂章,以及具体相似的句⼦。 可应⽤于毕业论⽂查重,⽂本抄袭检测。数据集: id author source content feature title url 89617 快科技@http://www.kkj.c.
2020-08-17 18:53:00 998 1
原创 基于内容的推荐—为酒店建立内容推荐
项目描述:基于西雅图酒店数据集,基于用户选择的酒店,为其推荐相似度高的Top10个其他酒店。数据集下载链接:https://github.com/susanli2016/Machine-Learning-with-Python/blob/master/Seattle_Hotels.csv数据集包含三个字段:酒店姓名、地址、以及内容描述。数据集展示:方法步骤:1.数据探索及导入相关包:import pandas as pdimport numpy as npfrom nl
2020-08-17 18:06:32 881 1
原创 面试题:合并递增链表并保持递增
题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解决代码:# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# se
2020-08-17 16:23:30 164
原创 面试题:反转链表并输出头结点
题目描述:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解题思路:建立两个节点,前向与当前节点,前向节点初始化为None,当前节点初始化为头节点;接着遍历原链表,将链表的指针指向进行调换,直到遍历完整个原链表,指针顺序调换完成。解决代码:# Definition for singly-link
2020-08-17 15:48:27 372
原创 面试题:找到链表中的倒数第K个节点
题目描述:输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.解题思路:采用双指针的方法:首先,前向指针、后向指针都初始化为head节点,之后前向指针往前走K步,保持对后向指针的领先
2020-08-17 14:12:59 170
原创 剑指offer21-调整数组顺序使得奇书位于偶数前面
题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。示例:输入:nums =[1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。解题思路:按照头尾索引的方法,从左到右索引,查看是否有偶数,从右到左索引,查看是否有奇数,如果查看到了偶数与奇数,则两两交换位置,直到头尾索引的index相遇,则按要求划分完成。解决代码:class Solution(object):.
2020-08-17 13:34:12 121
原创 学习分享:推荐系统:基于协同过滤的思维导图分享
推荐系统结构图:协同过滤初步思维导图:总结: 用思维导图的方式记录学习知识,对梳理知识点非常有帮助!
2020-08-15 16:49:55 370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人