自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

原创 IntelliJ IDEA 2017 汉化包及教程

参考http://blog.csdn.net/g_blue_wind/article/details/74382338一、准备官网下载IntelliJ IDEA 2017 并安装好下载汉化包 (百度云链接:http://pan.baidu.com/s/1slS9ZMP 密码:gp79)二、汉化 此处有两种方法,可以选择第二种方法一步一步操作,也可以按第一种方...

2018-03-09 17:17:29 50687 12

原创 【无标题】

python args kwargs

2023-02-28 15:34:36 88

原创 【leetcode database】组合两个表、第二高的薪水、第N高的薪水、分数排名、超过经理收入的员工、查找重复的电子邮箱、 从不订购的客户

目录175. 组合两个表题目思路:left join176. 第二高的薪水题目思路order by desc, limit offset175. 组合两个表题目表1: Person,PersonId 是上表主键+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | var

2020-09-24 17:36:00 457

原创 【leetcode】300. 最长上升子序列(动态规划:dp[i] 表示以 nums[i] 结尾的「上升子序列」的长度)

目录题目思路题目思路参考leetcode清晰思路状态定义成:dp[i] 表示以 nums[i] 结尾的「上升子序列」的长度。注意:这个定义中 nums[i] 必须被选取,且必须是这个子序列的最后一个元素。遍历到 nums[i] 时,需要把下标 i 之前的所有的数都看一遍;只要 nums[i] 严格大于在它位置之前的某个数,那么 nums[i] 就可以接在这个数后面形成一个更长的上升子序列;因此,dp[i] 就等于下标 i 之前严格小于 nums[i] 的状态值的最大者 +1。...

2020-09-08 22:55:06 219

原创 【leetcode】406. 根据身高重建队列(按身高降序排序,依次取出高个放到合适位置,list容器,辅助函数advance(it, n) )

目录题目思路代码题目假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]思路参考leetcode清晰思路核心思路非常简单:先把人员按身高降序排序,然后依

2020-09-08 22:42:07 615

原创 【leetcode】15. 三数之和(排序+左右双指针)

目录题目思路题目给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路leetcode清晰思路leetcode代码交流时间复杂度O(N^2), 空间复杂度O(1)1. 先对数

2020-09-08 21:52:04 128

原创 【leetcode】1. 两数之和(题设保证了每种输入的唯一性所以用哈希表)

目录题目思路题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]思路因为题设保证了每种输入的唯一性,所以我们把每个元素nums[i]都存入哈希表,在存入之前判断target-nu

2020-09-08 19:57:45 166

原创 【笔试记录】2020.9.2 华为机试

这里写自定义目录标题1、找出拿相同颜色且糖果总数最多的3位小朋友题目代码2、求湖泊个数题目代码3、最大体积最大价值的01背包题目思路1、找出拿相同颜色且糖果总数最多的3位小朋友题目代码ac。思路:按题目要求先排序,再输出即可。#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include

2020-09-08 11:11:26 1621

原创 【笔试记录】网易互娱

网易笔试1、自动贩卖机题目代码2、游戏机刷新帧题目思路3、迷宫思路4、非凡排序题目代码1、自动贩卖机题目代码#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <stack>#include <algorithm>#include <vector>#include <iomanip&g

2020-09-05 18:30:55 332

原创 【leetcode】1004. 最大连续1的个数 III (滑动窗口:每次判断窗口内0的个数来移动左指针。接着右指针右走一步)

目录题目滑动窗口:每次判断窗口内0的个数来移动左指针。接着右指针右走一步题目给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释: [1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。示例 2:输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0

2020-09-04 20:53:30 148

原创 【笔试记录】2020.8.29 科大讯飞 c++

目录棋盘最大价值判断排序算法消除多余的下划线(不开辟新空间)分解质因数棋盘最大价值#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include <iomanip>#include <map>#include <se

2020-08-29 21:09:05 343

原创 【笔试记录】2020.8.27 京东- c++后台开发(十进制逆序转五进制、完全背包问题求排列总数)

目录1、十进制逆序转五进制题目代码2、类似零钱兑换的完全背包问题,求排列总数而不是组合总数题目思路1、十进制逆序转五进制题目代码#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include <iomanip>#include "l

2020-08-27 21:36:55 217

原创 【笔试记录】2020.8.26 深信服笔试(最小移动次数使数组元素相等、字符串连续变换)

目录1、魔法棒题目思路leetcode原题2、字符串连续变换题目思路题目类型:不定向选择、填空题、编程题1、魔法棒题目思路每次的操作:指定一棵树高度不变,其余树高度加1最终目标:所有树的高度相同那其实这个操作就等用于指定一棵树高度减1,其余树高度不变,最终目标是所有树的高度都减到最矮树。那就记录高度最小值,最终要求的就是其余树高度和最小值的差的总和。我下面的代码ac,现在感觉其实不用排序,输入的时候记录minvalue就可以了#include <iostream>#in

2020-08-26 15:38:05 476

原创 【笔试记录】2020.8.24 腾讯笔试(字典序第k小的子串:k=[1,5];数位和最大;)

目录删除单项链表的第k个结点题目代码字典序第k小的子串:k=[1,5]题目代码删除单项链表的第k个结点题目代码直接拿个数组存,第k个数不输出就可以了#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include <iomanip>

2020-08-25 18:44:34 410

原创 【笔试记录】2020.8.23 字节笔试 - 服务端开发(统计不能被3整除的子序列排列情况、统计不能被k整除的子集个数)

目录前言1、统计不能被3整除的子序列排列情况题目思路2、统计不能被k整除的子集个数题目参考思路启动机器题目线段和树题目前言(摘自牛客网评论)每个题目的相关知识点:1.有限状态机 //主要是状态转换规则要清楚2.无 //完全就是一个列举的问题,一定要把数字进行归类,然后将问题进行拆分3.贪心算法 //别忘了题目内的提示。4.环图的判断// 转换应该大家都很好做的,第二步BFS或者DFS就可以,我没做主要是因为时间不是很够,而且休息不够脑子有点撑不住了。1、统计不能被3整除的子序列排列情况

2020-08-23 19:45:55 417

原创 【leetcode】518. 零钱兑换 II(动态规划,dp[k,i]表示在coins[0...k-1]中选取硬币可以凑成总金额i的组合数)

目录题目思路:动态规划,注意是组合,不是排列题目这次不求凑成总金额所需的最少硬币个数,而是求组合总数。给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入: amount = 3, coins = [2]输出: 0解释: 只用面额2的

2020-08-23 18:42:04 416

原创 【笔试记录】2020.8.21 阿里-java后台开发(过河问题、下棋完美度问题)

目录过河问题下棋完美度问题过河问题当人数超过4人时,每次过河都有两种方案,择优选取。1、最小送最大的先去,最小的回来;然后最小的陪倒数第二大的去,最小的再回来。2、两个小的一起去,回来一个小的;然后两个最大的一起去,回来另一个小的。#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#includ

2020-08-22 22:20:53 350

原创 【笔试记录】2020.8.22 猿辅导 - 服务器端开发(打印完全二叉树的边界)

目录打印完全二叉树的边界打印完全二叉树的边界根据结点序号位置,依次打印非叶子的左边界,非右边界的叶子结点,非左边界的右边界。#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include <iomanip>#include <u

2020-08-22 20:46:06 343

原创 【笔试记录】2020.7.25 百度二面 (手撕开方:二分法)

手撕开方sqrt(),要求不能使用自带的math库等#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include "limits.h"using namespace std;float abss( float a, float b){

2020-08-20 22:34:59 216

原创 【笔试记录】寻找最短回文字符串(把字符串拆成 非回文串+最长回文串 )

寻找最短回文字符串:输入一个字符串,要求尽可能少的在字符串尾部添加字符,使得它成为一个回文字符串,最后输入这个最短回文字符串。思路:把字符串分成两个子字符串str=str1+str2,其中str1不是回文串,str2是最长的回文串。那么我们要找的最短回文串等于str1+str2+reverse(str1)即str+reverse(str1)。把#include <iostream>using namespace std;//判断字符串str[start,str.length()]是否为

2020-08-20 22:34:35 423

原创 【笔试记录】2020.8.5 虾皮shopee - 后台开发(找出不在数组内的最小正数、判断回文链表、输出无效交易)

目录找出不在数组内的最小正数判断回文链表输出无效交易第一次三道编程题全ac找出不在数组内的最小正数第一题ac 找出不在数组内的最小正数。关键思路:我们要找的这个最小的数一定属于[1,numslen+1]。class Solution {public: /** * * @param nums int整型一维数组 入参数组 * @param numsLen int nums数组长度 * @return int整型 */ int firs

2020-08-20 22:21:01 318

原创 【笔试记录】2020.8.19 shein -后台开发(统计字符个数并排序输出)

目录统计字符个数并排序输出选择题的语言题都是java。一道编程题,由于大于号小于号写反了,导致没ac成功…气人哦…以下是调整过来的代码统计字符个数并排序输出#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include <iomanip&gt

2020-08-20 22:02:08 738

原创 【笔试记录】2020.8.30 美团-后台开发(两道排序题)

目录租服务器赏金猎人30道选择题有点难。两道编程题:第一题暴力排序ac;第二题暴力排序45%,感觉需要改成long long也许能通过。租服务器两层排序,以下代码ac100%#include <iostream>#include <stdio.h>#include <string.h>#include <queue>#include <algorithm>#include <vector>#include &lt

2020-08-20 21:57:32 347

原创 【leetcode】322. 零钱兑换(硬币无限所以是完全背包问题,状态方程定义dp[i]表示凑成总金额i所需的最少硬币个数)

目录class Solution {public: int coinChange(vector<int>& coins, int amount) { /* 硬币无限,完全背包问题。动态规划。 状态方程定义dp[i]表示凑成总金额i所需的最少硬币个数。 初试dp[0]=0,最终要求的是dp[amount] 状态转移方程:对于每一种硬币coins[j],我可以选择放进来或者不放。如果不放,那么dp[i

2020-08-16 18:49:23 264

原创 【leetcode】**416. 分割等和子集(0/1背包问题:dp[i][j]表示从下标[0,i]中挑选出几个元素组成和为j的可能性)

目录题目思路背包问题:二维数组dp[i][j]题目给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。注意:每个数组中的元素不会超过 100数组的大小不会超过 200示例 1:输入: [1, 5, 11, 5]输出: true解释: 数组可以分割成 [1, 5, 5] 和 [11].示例 2:输入: [1, 2, 3, 5]输出: false解释: 数组不能分割成两个元素和相等的子集.思路背包问题:二维数组dp[i][j]0/1背

2020-08-16 15:42:26 185

原创 【剑指Offer】最长不含重复字符的子字符串(动态规划+哈希表更新每个字符最近一次出现的下标位置)

目录题目思路动态规划+哈希表节省空间题目请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须

2020-08-14 14:58:37 107

原创 【剑指Offer】**序列化二叉树(二叉树的层序遍历输出用队列bfs;根据数组构建二叉树:队列)

目录题目根据数组构建二叉树:用队列,依次取一个结点然后按数组顺序构建左右孩子题目请实现两个函数,分别用来序列化和反序列化二叉树。示例: 你可以将以下二叉树: 1 / \ 2 3 / \ 4 5序列化为 "[1,2,3,null,null,4,5]"根据数组构建二叉树:用队列,依次取一个结点然后按数组顺序构建左右孩子根据数组nums[i]构建二叉树:将根结点放入队列,同时记录已构造结点个数cnt=1;然后每次从队列中取出一个结点,构建其左

2020-08-11 22:03:49 155

原创 【剑指Offer】和为s的连续正数序列(暴力法;解一元二次方程;滑动窗口)

目录题目思路暴力法 O(N*开方N)数据解法:一元二次方程求解 O(N)滑动窗口题目输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例 1:输入:target = 9输出:[[2,3,4],[4,5]]示例 2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]] 限制:1 <= target <= 10^5思路暴力法

2020-08-11 18:25:57 122

原创 【剑指Offer】机器人的运动范围(dfs递归思想;bfs)

目录题目思路dfs递归思想bfs题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?示例 1:输入:m = 2, n = 3, k = 1输

2020-08-11 16:47:40 97

原创 【leetcode】141. 环形链表(用hashset存储已遍历的结点;快慢指针如果有环就一定会相遇,否则会指向尾部NULL)

目录题目思路用hashset存储已遍历的结点快慢指针题目给定一个链表,判断链表中是否有环。思路用hashset存储已遍历的结点时间复杂度O(N)空间复杂度O(N)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class

2020-08-09 16:38:10 142

原创 【算法】快速排序、桶排序

目录快速排序快排思想如何选择基准数快速排序的4种优化代码桶排序基本思想什么是堆如何调整一个堆为大顶堆?代码快速排序简单易懂的一篇博客快排思想不断的选定一个基准(pivot),然后把比基准数小的放在基准数的左边,把基准数大的都放在基准数的右边,最终找到了基准在数组中的正确索引位置(分区过程partition)。然后递归的对这两部分记录继续快排,以达到整个序列有序。第一轮快排: 先选出第一个数作为基准pivot,存到临时空间中,同时这个索引也是low。然后双指针索引low和high。第一次从high往

2020-08-08 12:46:45 293

原创 【剑指Offer】**最小的k个数(利用快排思想的快速选择 / 堆排序)

目录题目思路利用快排思想的快速选择堆排序题目输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2: 输入:arr = [0,1,2,1], k = 1输出:[0] 限制:0 <= k <= arr.length <= 100000 <= arr[i] <= 10000思

2020-08-07 22:21:52 165

原创 【leetcode】200. 岛屿数量(bfs/dfs)

目录题目bfs广度优先搜索题目bfs广度优先搜索bfs:每次遇到一个点,如果是0,直接跳过,如果是1,就判断这个点flag是否被遍历过,如果没被遍历过,从这点开始进行bfs,需要借助队列的辅助空间,同时注意把这个岛屿走过的点都标记flag=1,bfs结束时岛屿数量加一。或者不需要另外开辟空间存储flag,对于遍历过的‘1’,直接将其值改为0即可。pair类型定义在#include class Solution {public: /* bfs:每次遇到一个点,如果是0,直接跳

2020-08-05 10:46:52 217

原创 【leetcode】146. LRU缓存机制(只写了思路,代码未写)

目录题目思路题目运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶

2020-08-04 21:50:42 186

原创 【leetcode】35. **复制带随机指针的链表(深拷贝!利用哈希表来存原结点和拷贝结点的一一对应关系)

目录题目暴力法:哈希表存原结点和拷贝结点的一一对应关系题目请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。示例 1:输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还

2020-08-04 20:50:21 154

原创 【leetcode】102.二叉树的层序遍历(用队列实现的bfs广度优先搜索)

目录题目bfs题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]bfs时间复杂度:O(N),N为结点个数,需要遍历每个结点空间复杂度:O(N),辅助空间用到队列,而队列最大长度等于层结点个数的最大值/** * Defi

2020-08-04 17:40:43 173

原创 【leetcode】合并两个有序数组(题设nums1 有足够的空间,所以双指针从后往前遍历,先找最大数)

目录题目双指针从后往前遍历题目给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6

2020-08-04 15:39:04 168

原创 【剑指Offer】连续子数组的最大和(动态规划:状态定义dp[i]表示以nums[i]结尾的连续子串的最大和)

目录题目动态规划题目输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100动态规划状态定义:dp[i]表示必须以nums[i]结尾的连续

2020-08-04 15:13:10 170

原创 【剑指Offer】**把数字翻译成字符串(1.dfs 2.动态规划?)

这里写自定义目录标题题目思路dfs动态规划?题目给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi" 提示:0 <= num < 231思路df

2020-08-02 17:17:53 128

原创 【剑指Offer】数组中重复的数字(1. 集合容器set元素唯一 2. 原地置换让数字i保存到下标为i的位置)

目录题目思路集合容器set元素唯一性:O(N)+O(N)原地置换让数字i保存到下标为i的位置:O(N)+O(1)题目找出数组中重复的数字:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000思路集合容器set元素唯一性:O(N)

2020-08-02 16:29:49 233 2

空空如也

空空如也

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

TA关注的人

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