自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 53.最大子序和 动态规划 C++

简单题基础思路:暴力的话,for循环找以数组每一个位置为起点的最大值,再做比较动态规划:数组num,位置i之前的最大值为,位置i-1的最大值+num[i]或者num[i]自身可能以i为开头class Solution {public: int max(int a, int b) { if (a > b) { return a; } else { return b; } }

2021-05-11 17:22:26 91

原创 LeetCode 单链表合并 C++

两个单链表进行合并注意点:判断空链表的状态小的数往前插入,大的数找到合适位置插入单链表没有向前的指针,只能找到合适位置后重新遍历/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(

2021-05-10 15:05:48 138

原创 Leetcode热题 有效的括号 C++

简单题,练练手,不太熟悉C++的用法思路:栈存储,注意判空,若为左括号入栈,若为右括号比较栈顶与新元素是否是一组括号#include <stack>class Solution {public: int isExist(char a, char* p) { for (int i = 0; i < 3; i++) { if (a == p[i]) { return i; }

2021-05-10 10:57:19 65

原创 C++ 结构体对齐

不存在 #pragma pack (n)以结构体内最长的数据类型大小作业最大模数,排除存放在全局数据区内的静态变量或特殊变量,若存在结构体或共用体,使用该结构体或共用体的最大模数作为该数据的模数。存在 #pragma pack (n)以n字节作为结构体的最大模数,自动补齐。...

2021-04-14 11:56:38 78

原创 动态规划 C++,最大上升子串

题目:华华要给厂里进一批新箱子共n个(n<=500),箱子用来装不同的器件。用一个正整数ai(1<=ai<=10000) (1<=i<=n)来表示每个箱子的高度。现在华华要从前往后选出m个箱子运到厂房用,因为厂房里的货物一个比一个大,所以这m个箱子要保证后面一个比前面一个高,也就是对任意的i < j 有 ai < aj. 那么m最大可以是多少呢?核心思路:找到状态转移方程,该题为count[i] = max(count[i], count[j] + 1)

2021-04-08 10:44:55 463

原创 巧妙求和

巧妙求和多次在(start,end)闭区间内加1,如何快速求最后结果每次在start-1处+1,在end处-1(因为数组前移一位,实际为起点处+1,终点后一位处-1),最后结果可以通过当前位置以前的数字求和得到def func(): n, m = map(int, input().strip().split()) res = [0]*n for i in range(m): start, end = map(int, input().strip().split(

2021-03-22 15:49:58 91

原创 一个字符串内无连续重复子串

无连续重复子串DFS创造字符串,要注意创造前后进入不同分支时保持字符串内容的clean,不要被其他分支的改动影响,当达到指定长度时,判断这个字符串是否包含相邻子串。def compare(s): s = "".join(s) for i in range(1, len(s)//2+1): for j in range(len(s)): if s[j:j+i] == s[j+i:j+i+i]: return False

2021-03-12 10:48:36 545

原创 MOD

给定两数字m,n,求m的所有位数字对n的所有位数字求模的和from collections import Counterdef func(): rounds = int(input()) for i in range(rounds): m = Counter(input()) n = Counter(input()) m_key = list(m) n_key = list(n) sum = 0

2021-03-11 10:34:02 101

原创 n选m

思路从1遍历到n,对于一个数字要么选要么不选,拿到m个数时停止def dfs(i, n, m, res): if len(res) == m: print(" ".join(map(str, res))) else: if i <= n: res.append(i) dfs(i+1, n, m, res) res.pop() dfs(i+1, n, m,

2021-03-10 15:48:47 122

原创 python 按字典序全排列实现

python 按字典序全排列递归实现代码:def swap(num, i, j): for x in range(j, i, -1): tmp = num[x] num[x] = num[x-1] num[x-1] = tmpdef swapback(num, i, j): for x in range(i, j): tmp = num[x] num[x] = num[x+1] num[x

2021-03-09 11:18:47 1488 2

空空如也

空空如也

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

TA关注的人

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