自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《Erlang程序设计》第八章习题

8.11.1.编写一个函数start(AnAtom, Fun)来把spawn(Fun)的结果注册为AnAtom。当两个并行的进程同时执行到start/2函数时,要确保代码能够正常工作。也就是说,这两个进程其中一个成功执行,而另一个必须执行失败。-module(section_8).-compile(export_all).start(AnAtom, Fun) -> case whereis(AnAtom) of undefined -> r

2021-05-14 10:07:20 139

原创 Mysql命令备忘

进入mysql:mysql -u root -p显示所有数据库:shoe databases;打开数据库:use xxx;显示所有表:show tables;

2021-05-14 09:58:44 70

原创 leetcode常见-打家劫舍系列

leetcode-198-打家劫舍题型:动态规划难度:简单题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。代码:class Solution {//对于每间房子,都有两种可能,偷了或没偷public: int rob(vector&l.

2020-10-17 18:24:16 125

原创 面试常见-完全背包

leetcode-377-组合总和题型:01背包难度:中等题目:给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。代码:class Solution {public: int combinationSum4(vector<int>& nums, int target) { int n = nums.size(); if(n == 0) return 0; vector<int&gt.

2020-10-17 10:07:07 112

原创 面试常见-01背包问题

背包最大承受能力为w,总商品个数为n,每件商品的重量各不相同,如何能让背包内的商品总重量达到最大值?(回溯背包)代码:#include <iostream>#include <vector>#include <algorithm>using namespace std;void dfs(vector<int> &vec,int w,int curw,int i,int n,int &res) { //如果物品个数达到最大值,或.

2020-10-17 08:50:46 335

原创 面试常见-股票类型题

注:所有题目来源于https://leetcode-cn.com/leetcode-121-买卖股票的最佳时机难度:简单题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。代码:(没做内存处理,待优化)class Solution {public: int maxProfit(vector<int>& prices) { int n

2020-10-09 11:32:29 205

原创 2020-10-03~2020-10-04刷题

leetcode-860-柠檬水找零题型:贪心难度:简单题目:在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。代码:class Solution {public://优先选最大值,.

2020-10-07 11:51:01 111

原创 2020-09-30刷题

回文链表、字符串压缩leetcode-面试题02.06-回文链表题型:双指针、栈难度:简单题目:编写一个函数,检查输入的链表是否是回文的。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {

2020-10-03 09:32:44 80

原创 2020-09-27刷题

公共祖先、字符是否唯一、是否互为字符重排、URL优化、leetcode-235-二叉搜索树的最近公共祖先题型:树、递归难度:简单题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”代码:/** * Definition for a binary tree node. * struct T

2020-09-27 11:14:18 74

原创 2020-09-26刷题

leetcode-53-最大子序和题型:动态规划、难度:简单题目:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。代码:(1)方法一:动态规划class Solution {public: int maxSubArray(vector<int>& nums) { int len = nums.size(); if(len == 0) return 0; int .

2020-09-26 15:16:13 47

原创 2020-09-25刷题

leetcode-106-从中序和后序遍历构建二叉树题型:树、递归难度:中等题目:根据一棵树的中序遍历与后序遍历构造二叉树。注意:你可以假设树中没有重复的元素。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(N.

2020-09-25 19:47:01 52

原创 2020-09-23刷题

leetcode125-验证回文串题型:字符串、双指针难度:简单题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。代码:class Solution {public: bool isPalindrome(string s) { int len = s.size(); int left = 0,right = len-1; while(left <.

2020-09-25 09:43:47 85

原创 2020-09-22刷题

leetcode79-单词搜索题型:回溯、递归难度:中等题目:给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。代码:class Solution {//遍历每个点,把每个点分别当成word的起始字符,如果满足,往后找public: bool dfs(vector<vector<char>>& boar.

2020-09-22 19:37:32 80

原创 2020-09-18刷题

leetcode128-连续最长序列题型:数组难度:困难题目:给定一个未排序的整数数组,找出最长连续序列的长度。求算法的时间复杂度为 O(n)。代码: class Solution {public: int longestConsecutive(vector<int>& nums) { //计算每个元素出现的个数 unordered_map<int,int> mp; int len = nums.size.

2020-09-20 07:25:41 40

原创 2020-09-17刷题

输入一个十进制数,把它二进制进行倒置并输出。代码:#include <iostream>#include <string>using namespace std;string GetResEr(int n){ string res = ""; while(n) { int yu = n%2; if(yu == 0) res += "0"; else res += "1"; n /= 2; } //如果要求32位都要写,在这里补0就可.

2020-09-17 22:07:35 45

原创 2020-09-16刷题

leetcode226-翻转二叉树题型:树、递归难度:简单题目:翻转一棵二叉树。代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solu.

2020-09-16 13:28:35 44

原创 2020-09-14刷题

leetcode347-前K个高频元素题型:堆、排序难度:中等题目:给定一个非空的整数数组,返回其中出现频率前 k 高的元素。代码:class Solution {public: static bool cmp(const pair<int,int> &pr1,const pair<int,int> &pr2){ return pr1.second > pr2.second; } vector<int.

2020-09-16 06:58:27 55

原创 2020-09-10刷题

面试常问题-String类的实现#include <iostream>#include <string.h>using namespace std;class MyString{public: char *m_str; int m_size;public://默认构造函数 MyString(const char *str){ if(str == NULL){ m_str = new char[1]; m_str[0] = '\0'; m_.

2020-09-13 09:32:04 160

原创 2020-09-05刷题

leetcode-678-有效的括号字符串题型:贪心难度:中等代码://可以把*当成预备左括号个数class Solution {public: bool checkValidString(string s) { int len = s.size(); int cur=0,nMax=0; for(int i=0;i<len;i++) { if(s[i] == '(') .

2020-09-13 09:31:39 39

原创 2020-09-09刷题

求两个自然数的最小公倍数

2020-09-09 22:33:53 60

原创 2020-09-04刷题

leetcode-5-最长回文子串题型:动态规划难度:中等题目:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。代码://动态规划dp[i][j]表示i~j范围的字符串,如果满足回文,那么dp[i+1][j-1]一定也是回文,并且两边加上相同的字符也是回文class Solution {public: string longestPalindrome(string s) { int nlen = s.size(); .

2020-09-04 14:35:17 41

原创 2020-09-02刷题

大数加法概述:很多时候在进行大数运算时,也就是可能成百位的数字进行加法时,int甚至long 都无法运算,那么我们可以用字符串代替。代码:#include <iostream>#include <string>using namespace std;string GetSum(string str1,string str2){ //挑选较大的数,作为进位的数 if(str1.size() < str2.size()) { string temp = .

2020-09-02 11:58:34 80

原创 2020-09-01刷题

leetcode-486-预测赢家题型:递归、动态规划难度:中等题目:给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。代码:方法1:递归class Solution {public:.

2020-09-01 12:54:13 209

原创 2020-08-31刷题

leetcode-841-钥匙和房间题型:深优、递归难度:中等题目:有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。.

2020-08-31 11:03:39 125

原创 2020-08-25刷题

leetcode491-递增子序列题型:递归难度:中等题目:给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。代码: //利用递归+枚举即可。分两种情况,这个数组里有没有当前元素,然后在这个结果上继续往后判断。class Solution {public: vector<vector<int> > vec; vector<int> tempvec;public: void dfs(vector&.

2020-08-25 14:30:11 87 1

原创 2020-08-24刷题

leetcode459-重复的子字符串题型:字符串难度:简单题目:给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。代码://字符串str如果是由它的一个子串组成的,那么假设子串为N,str是由n个N组成的,即可以表示为:NNNNN...//把两个str拼接到一起。//如果满足条件,屏蔽掉第一个字符,str不再完整,必须从第二个子串中查找,如果仍能查到,说明满足;没查到,不满足。//满足的条件用find()来判断,s.

2020-08-24 09:46:59 187

原创 2020-08-23刷题

leetcode1143-最长公共子序列题型:动态规划难度:中等(出现频率很大)题目:给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列的长度。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字符串没有公共子序列.

2020-08-23 12:50:25 53

原创 2020-08-22刷题

leetcode-679-24点游戏类型:难度:困难题目:你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。代码://用双向队列去做,队头出队,队尾入队。//取队头cur。并且出队。遍历后面的数,出队,分别和cur加减乘除,合成一个新元素,将新元素入队。再判断新队列。处理后把这个新元素弹出,并把原来的两个元素重新入队。//过程中,只要满足一个,返回即可。//满足条件是,当队列里元素整合为一个整体时,也就是队列中只有一个元素时,判断是否.

2020-08-22 11:11:57 63

原创 剑指offer(待更新)

注:所有题目来源于leetcode官网剑指offer-03.数组中重复的数组难度:简单题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。方法一://用一个map,记录所有数字出现的个数,然后遍历map,找到个数第一次大于1的数字。class Solution {private: unordered_map<int,

2020-08-20 09:54:46 106

原创 2020-08-17刷题

leetcode-40组合总和2题型:回溯难度:中等题目:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。代码:class Solution { //和上一题目类似,但不同于每个数组只能处理一次,还是回溯。private: vector<int> .

2020-08-17 20:55:03 58

原创 2020-08-16刷题

leetcode-LCP 07. 传递信息题型:动态规划难度:简单题目:小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:有 n 名玩家,所有玩家编号分别为 0 ~ n-1,其中小朋友 A 的编号为 0,每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如 A 可以向 B 传信息,但 B 不能向 A 传信息)。每轮信息必须需要传递给另一个人,且信息可重复经过同一个人给定总玩家数 n,以及按 [玩家编号,对应可传递玩家编号] 关系组成的二维数组 relati.

2020-08-16 20:03:12 159

原创 2020-08-15刷题

leetcode-546移除盒子题型:动态规划难度:困难题目:给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k >= 1),这样一轮之后你将得到 k*k 个积分。当你将所有盒子都去掉之后,求你能获得的最大积分和。代码:class Solution {public: int dp[100][100][100];public: //不能只考虑.

2020-08-15 21:40:32 96

原创 2020-08-14刷题

leetcode688马在棋盘上的概率题型:动态规划难度:中等题目:已知一个 NxN 的国际象棋棋盘,棋盘的行号和列号都是从 0 开始。即最左上角的格子记为 (0, 0),最右下角的记为 (N-1, N-1)。 现有一个 “马”(也译作 “骑士”)位于 (r, c) ,并打算进行 K 次移动。 如下图所示,国际象棋的 “马” 每一步先沿水平或垂直方向移动 2 个格子,然后向与之相垂直的方向再移动 1 个格子,共有 8 个可选的位置。代码:class Solution {public: .

2020-08-14 11:18:10 103

原创 2020-08-13刷题

leetcode740删除与获得点数题型:动态规划难度:中等题目:给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。代码:class Solution {public: int deleteAndEarn(vector<int>& nu.

2020-08-14 07:41:39 113

原创 2020-08-12刷题

leetcode1139:最大的以1为边界的正方形题型:动态规划题目:给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。代码:class Solution {public: int largest1BorderedSquare(vector<vector<int>>& grid) { int m = grid.size(); .

2020-08-12 22:46:33 145

空空如也

空空如也

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

TA关注的人

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