
杂谈
文章平均质量分 55
Ypuyu
Ypuyu
展开
-
[有趣的算法思维] 0. 有趣的算法思维博文汇总
有趣的算法思维 Somehow, everything just work. 你不知道他怎么想的,但他就是想到了。本专栏旨在发现一些有趣的算法思维、思维转换,并配上一定的例子做以记录,希望被更多人所发现,感受算法之美…有趣的算法思维CSND博客详解链接:得有个有趣的名字有趣星级(1✯~5✯)待填待填...原创 2020-02-25 22:33:04 · 232 阅读 · 1 评论 -
[杂谈] 关于 Mac 电脑使用 Logitech 鼠标导致 Vscode 侧键无法进行代码前进、回退的问题
但是,最近涉及到多语言开发,在尝试使用 Vscode,发现我的鼠标侧键,在 Vscode 用不了了。搜了搜,果然和这个 Logitech 有关。之前一直使用的 GoLand 开发,查看代码时进行代码跳转就很方便,滚轮键 进入函数方法,鼠标侧键进行前进、后退。看代码完全可以右手单手加鼠标进行操作。我个人使用的是一台 14 寸的 Mac_Apple_M1,外接键盘显示器+罗技的 MX Master 3 for Mac 的鼠标。综上,通过智能的按键映射,解决 Vscode 用不了侧键进行代码跳转的问题。原创 2024-07-16 22:54:29 · 1638 阅读 · 0 评论 -
[随笔] 在优快云的6周年纪念日随笔
相关的开发,本来就是数学系的我,看到各种熟悉的数学公式和名词很是开心,很喜欢理论结合实践所得出的结果。仿佛找到了新的学习激情,未来可以朝着这个方向继续潜心学习更新博文了,哈哈。学习各类博文,才学浅薄就没有主动写博文记录自己的学习历程。自己喜欢的算法竞赛相关的,在工作中也用的少。,意气风发的写下《一份清爽的编程计划》,哈哈。现在回看这些计划,部分完成了,部分未完成。转眼已过6年,大一的时候学习编程,潜水。目前成果如下,工作好久,也停更好久了。过了段时间刚刚到了大二,很喜欢。仅此记录,学习共勉。原创 2024-05-22 10:40:13 · 595 阅读 · 1 评论 -
[有趣的算法思维] 3. 前缀和思维与最大子阵和(前缀和、最大子段和、最大子阵和、代码优化)
文章目录1. 题目来源2. 题目说明3. 思维启迪3.1 前缀和3.2 最大子段和3.3 最大子阵和3.4 最大子阵和代码展示3.5 代码优化4. 总结1. 题目来源题名:最大子阵和2. 题目说明3. 思维启迪3.1 前缀和对于这个题目来讲题意就很明确,这个答案 15 就是下图这个子矩阵所构成:接着我们来看看非常常见的一种解题方法:前缀和,这个方法在很多类型题目都常常使用,尤其在...原创 2020-02-27 09:31:51 · 734 阅读 · 2 评论 -
[有趣的算法思维] 2. 杨氏矩阵思维与两数之和 II - 输入有序数组(杨氏矩阵深度剖析)
文章目录1. 题目来源2. 题目说明3. 思维启迪3.1 暴力解法3.2 双指针解法3.3 杨氏矩阵3.4 杨氏矩阵深度剖析3.5 代码展示4. 总结1. 题目来源链接:两数之和 II - 输入有序数组来源:LeetCode2. 题目说明给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1...原创 2020-02-26 18:35:35 · 316 阅读 · 1 评论 -
[有趣的算法思维] 1. 链表思维与快乐数(单链表思维、链表带环判断)
文章目录1. 题目来源2. 题目说明3. 思维启迪3.1 单链表3.2 单链表判环3.3 提炼其精华所在3.4 快乐数与单链表的联系3.5 算法规模,是不是死循环?3.6 代码展示4. 总结1. 题目来源链接:快乐数来源:LeetCode2. 题目说明编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这...原创 2020-02-26 09:37:16 · 526 阅读 · 4 评论 -
[杂谈] 16. Reservoir Sampling 蓄水池抽样算法
1. 常见例题采样问题常见面试题:有一堆数据,但是你不知道有多少个,让你随机抽取10个?从 100000 份调查报告中抽取 1000 份进行统计。从一本很厚的电话簿中抽取 1000 人进行姓氏统计。从 Google 搜索 “Ken Thompson”,从中抽取 100 个结果查看哪些是今年的。《编程珠玑》中的一个习题:如何随机从n个对象中(这n个对象是按序排列的,但是在此之前你...原创 2020-02-16 00:39:36 · 427 阅读 · 0 评论 -
[杂谈] 15. 鸽巢原理及相关OJ例题
文章目录1. 鸽巢原理2. 定理证明3. 相关例题3.1 OJ例题3.1 组合数学相关例题1. 鸽巢原理鸽巢原理又名抽屉原理、鞋盒原理,是一种简单的组合数学思想,在编程OJ、ACM,中广泛应用,往往能够达到优越的空间复杂度、时间复杂度。多用于解决存在性问题。2. 定理证明定理: 如果把n+1个物体放入n个盒子,至少有一个盒子包含两个或更多的物体。证明: 反证法 n个盒子每个盒子至多一个物...原创 2020-02-15 18:52:50 · 1044 阅读 · 0 评论 -
[杂谈] 14. Catalan卡特兰数
文章目录1. 前言2. 卡特兰数递推公式推导3. 卡特兰数性质4. 卡特兰数简单实例实例1:进出栈问题实例2:进出栈问题变种实例三:电影购票问题实例四:上班路径问题实例五:乘法结合律问题实例六:结合律与三角形划分的对应关系实例七:加括号与三角形划分的对应关系5. 编程OJ例题1. 前言Catalan 数是一组比较神奇的数字1, 1, 2, 5, 14, 42, 132, 429, 1430, ...原创 2020-02-10 22:00:01 · 559 阅读 · 0 评论 -
[杂谈] 13. O(1)空间的 Morris法遍历二叉树
文章目录1. 前言2. 中序遍历2.1 **步骤**2.2 **图示**2.3 **复杂度分析**3. 前序遍历3.1 **步骤**3.2 **图示**3.3 复杂度分析4. 后序遍历4.1 步骤4.2 图示4.3 复杂度分析1. 前言本文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:O(1)空间复杂度,即只能使用常数空间;二叉树的形状不能被破坏(中间过程允许改变其...转载 2020-02-10 20:22:51 · 350 阅读 · 0 评论 -
[杂谈] 12. BF、KMP、RK Algorithm 字符串匹配算法
文章目录1. 算法由来2. 暴力破解法3. KMP算法3.1 最大前缀后缀公共元素3.2 next数组4. 代码递推next数组5. 完整的KMP的代码仅供参考:1. 算法由来KMP算法,全称Knuth-Morris-Pratt算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。是一种字符串匹配的算法,用于在一...原创 2020-02-03 18:04:46 · 641 阅读 · 0 评论 -
[杂谈] 11. Manacher's Algorithm 马拉车算法
1. 算法由来马拉车算法 Manacher‘s Algorithm 是用来查找一个字符串的最长回文子串的线性方法,由一个叫 Manacher 的人在 1975 年发明的,这个方法的最大贡献是在于将时间复杂度提升到了线性,这是非常了不起的。对于回文串想必大家都不陌生,就是正读反读都一样的字符串,比如 “bob”, “level”, “noon” 等等,那么如何在一个字符串中找出最长回文子串呢,可...原创 2020-02-01 21:42:49 · 1557 阅读 · 1 评论 -
[杂谈] 10. C++ 字符串去除两端空格trim()
C++ 字符串去除两端空格trim()经常用到。这里记录一下,方便自己使用。//C++ 去字符串两边的空格void trim(string &s) { if (s.empty()) { return ; } s.erase(0,s.find_first_not_of(" ")); s.erase(s.find_last_not...原创 2020-01-17 01:24:53 · 1337 阅读 · 0 评论 -
[杂谈] 9. C语言中getch()函数
getch()是编程中所用的函数,这个函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车,有的C语言命令行程序会用到此函数做游戏,但是这个函数并非标准函数,要注意移植性!所在头文件:#include<conio.h>函数用途:从控制台读取一个字符,但不显示在屏幕上。函数原型:int getch(void)。返回值:读取的字符。例如:char ch;或int...原创 2019-12-09 18:49:19 · 6792 阅读 · 1 评论 -
[杂谈] 8. 最长上升子序列O(nlogn)算法详解
最长上升子序列时间限制: 10 Sec内存限制: 128 MB题目描述给定一个序列,初始为空。现在我们将1到N的数字插入到序列中,每次将一个数字插入到一个特定的位置。我们想知道此时最长上升子序列长度是多少?输入第一行一个整数N,表示我们要将1到N插入序列中,接下是N个数字,第k个数字Xk,表示我们将k插入到位置Xk(0<=Xk<=k-1,1<=k<=N)输出...原创 2019-11-18 21:56:34 · 806 阅读 · 0 评论 -
[杂谈] 6. printf的整形提升及scanf引出来的坑(必看)
近期刷题时遇到这么一道选择题,看到题感觉怪怪的,对b的"%d"输出排除了C、D选项,每逢2选1必错导致选择了错误选项A。#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>int main() { int a; float b, c; scanf("%2d%3f%4f",...原创 2019-11-14 22:18:49 · 480 阅读 · 0 评论 -
[杂谈] 7. Majority Vote Algorithm 多数投票算法
多数投票算法是一种用O(1)O(1)O(1)的空间复杂度,时间复杂度为O(n)O(n)O(n)的算法,来求出数组中众数的算法:多数投票算法(Majority Vote Algorithm)在面试题中经常会出现这样一个题目,给一个数组,其中含有N个非负元素,让你求出数组中出现次数超过一半的数字。看到这个问题我们首先想到的可能是暴力的解法,那就是将数组排个序,输出中间的元素就行了,因为如果出现次...原创 2019-11-17 22:23:56 · 730 阅读 · 0 评论 -
[杂谈] 5. C++ cin.get()用法(详解版)
与字符串输入一样,有时候使用 cin>> 读取字符也不会按我们想要的结果行事。例如,因为它会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个空格或回车符。除非用户输入了空格键、制表符之外的其他字符,否则程序将不可能通过 cin 语句继续执行(一旦输入了这样的字符,在程序可以继续下一个语句之前,仍然需要按回车键)。因此,要求用户“按回车键继续”的程序,不能使...原创 2019-11-12 09:13:41 · 445 阅读 · 0 评论 -
[杂谈] 4. C++按指定的位数输出
在C语言中按指定位数输出采用printf函数有常用的方法,举个简单的例子如果要显示一个10位的整数,不足位数前面显示0:int n;printf("%010d", n);即可。其中10表示宽度,0表示前面添充0。但在整个C++语言语法中,用上printf对我来讲是中折磨。这里探讨C++如何将数据按指定的位数输出,如将所有打印在屏幕上的数据都按10位数输出,不够的前面补0。这里要用到C++...原创 2019-11-11 20:24:19 · 2104 阅读 · 0 评论 -
[杂谈] 3.#include algorithm 用法用途
#include<algorithm>是在做OJ的时候无可避免、提高速度、堪称利器的头文件。algorithm意为算法,该头文件为我们提供了多种便利的算法函数,程序开头加上这个头文件,就可以直接调用里面的函数了,不用再自己手写。但是一些复杂的算法还是要自己写的。另外可以看看cplusplus对其的官方解释http://www.cplusplus.com/reference/algor...原创 2019-09-05 00:00:28 · 9454 阅读 · 0 评论 -
[杂谈] 2. 原理大剖析--Unicode、utf8
Unicode、utf8等编码类型的原理:本文转自:http://www.cnblogs.com/daxiong2014/p/4768681.html1、ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用...转载 2019-04-21 11:42:47 · 424 阅读 · 0 评论 -
[杂谈] 1. VS报“不明确的符号”错误
最可能的原因之一是你用了C++保留字或是某个命名空间的关键字,例如:常见count明明定义为全局变量,怎么成为不明确的符号了呢??答案为:命名空间std有一个count函数将它重命名为另外一个名称可以解决这个问题。解决办法,在变量名前加上作用域标识符即可: ::如果同时要同时使用,加上命名空间和作用标识符即可: std::...原创 2019-04-07 09:19:40 · 3229 阅读 · 0 评论