摘要: 组合恒等式: 可得: C[i][j] = C[i][j-1] +C[i-1][j-1]; 此式可用于递归算法,卡特兰数问题等等 卡特兰数的一个公式: h[n]=C[2n,n]−C[2n,n−1](n=0,1,2,...) 典例:求出栈序列的所以情况: #include<cstdio> #define 阅读全文
posted @ 2021-03-26 14:25 助手的fork 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 1. str1 = input()s = '1234567890abcdefABCDEF'c = ""for item in str1: if item in s: c = c + item # print(str1.find(c[0]))# print(str1.find('-'))if c == 阅读全文
posted @ 2021-03-13 16:18 助手的fork 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 实现循环数组主要有两种方式: 1.将数组复制一次,接在原数组的后面。 2.遍历时,遍历2*n次,然后 i%n 靠取模运算得到下标。 阅读全文
posted @ 2021-03-06 15:17 助手的fork 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 参考:https://leetcode-cn.com/problems/next-greater-element-ii/solution/cong-po-su-jie-fa-de-jiao-du-qu-li-jie-d-trht/ 对于此类问题,最直接的方法就是两重遍历,但是时间复杂度太高。 之所以 阅读全文
posted @ 2021-03-06 15:08 助手的fork 阅读(56) 评论(0) 推荐(0) 编辑
摘要: lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。 在从小到大的排序数组中, lower_bound( begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在 阅读全文
posted @ 2021-03-04 14:17 助手的fork 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1.按位与 &是按位与,对应位都为1时该位得1,否则得0。 i&(i-1) 表示将二进制表示的i 的最右边的1变为0。 &与&&不同,&&是逻辑运算。 (1).(i & (i - 1)) == 0)&&(i>0) 用来判断i是否是2的整数幂。 (2).&还用于屏蔽二进制的某些位,一个二进制数 &0是 阅读全文
posted @ 2021-03-03 19:57 助手的fork 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 一维数组求区间和: preSum 方法能快速计算指定区间段 【i,j】的元素之和。它的计算方法是从左向右遍历数组,当遍历到数组的i位置时,preSum 表示 i 位置左边的元素之和。 推导过程引用自:https://leetcode-cn.com/problems/range-sum-query-i 阅读全文
posted @ 2021-03-02 09:49 助手的fork 阅读(2290) 评论(0) 推荐(0) 编辑
摘要: 对于 1 和 0 的翻转,有三种思路: 1.用 1 - 当前值 2.用 1 ^ 当前值(这个符号是 异或,相同为 0,相异为 1) 3.1>>当前值 关于>>位移位运算符,见位运算符(&|^) 阅读全文
posted @ 2021-02-24 10:06 助手的fork 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 首先是c++中的哈希表和Python中的字典: 一.unordered_map 哈希表是一个键值对型容器,基于哈希表(hash_table)这种数据结构,理解上有些类似于字典,不同于基于红黑树的map。 头文件:#include<unordered_map> 创建表 unordered_map<ke 阅读全文
posted @ 2021-02-20 12:23 助手的fork 阅读(4191) 评论(2) 推荐(1) 编辑
摘要: Python 中print()函数的用法真的是十分丰富,遇到一个记一个。 print()函数两个参数sep和end。 使用方法: 1.sep = ‘......’,使用引号中的字符来分割print要打印的每一个量,如果没有指定,默认为一个空格。 2.end = '......',使用引号中的字符来作 阅读全文
posted @ 2021-02-19 20:47 助手的fork 阅读(242) 评论(0) 推荐(0) 编辑