首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
之美专题
第四章 感受Mac之美-效率提高从操作快捷键开始
了解和掌握快捷键,可以提高工作效率,作用和意义是不言而喻的。节省不必要的操作时间,让你专注做自己真正重要的事。 比如最简单的复制,粘贴之类的入门快捷键,如果每个操作都需要右键执行去操作的话,那么在电脑上做什么操作都会慢一拍。 我是在入手俩周后,自己摸索之后,基本对系统里面基本的快捷键都有个印象了。 看了这么多的快捷键,一时半会也记不住啊,是不是有点崩溃啊,不过大家也不用担心快捷键的记不住,今
阅读更多...
第二章 感受Mac 之美-惊艳从Mac 外设开始,一周后的使用感受
期望已久,同时老婆也是极力推荐说,既然是吃饭的家伙,那么就下点血本投资下自己,原来那台已经满足不了你现在的工作效率了,继续沿用,得不偿失啊。 衡量了一下目前的情况,同时考虑到自己也是一个程序员爸爸了,也有房贷在身,所以去没有选择 16g 内存,512g 的 ssd,15.4 或者新版 16 寸大屏幕的高配,而是选择了比较适合我现阶段的配置的【Apple 2019 款 MacBook Pro 13
阅读更多...
第一章 感受mac之美-换一种方式用电脑,开启新历程
感谢关注我的读者一直以来的追随与信任。去年到今年以来大环境都不是很好。裁员,机构优化,工厂倒闭,公司破产,贸易战等消息传来,不少还是身边发生的。今年开年以来更是有病毒横行,天降蝗灾等灾害。愿大家都好好的,同时希望这场战役早早告捷。今天是二月二 ,民间传说龙抬头,祝愿大家从此事业腾飞,从此出人头地。 我在这断更的两年中的一些情况,一直处于闭关的状态,一直在学习与实践。后续再和大家一起分享这俩年
阅读更多...
[编程之美] 2.17 字符串循环移位
题目 将字符串向右循环移动 k 位 s = "abcd123" k = 3Return "123abcd" 思路 方法一 翻转法 将子串 s[0:str.length() - k)] 翻转,子串s[str.length() - k,str.length()] 翻转。然后将整个字符翻转可以到最终结果。 eg: 将 abcd123 中的 abcd 和 123 单独翻转,得到 dcba3
阅读更多...
[编程之美] 3.1 字符串循环移位包含
题目 s1 = AABCD, s2 = CDAA Return : true 给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环移位得到的字符串包含。 思路 以S1 = ABCD 为例,对其循环移位的后果为: ABCD -> BCDA -> CDAB -> DABC -> ABCD S1S1 = ABCDABCD 看出对S1做循环移位所得到的字符串都将是字符串S1S1的
阅读更多...
编程之美——寻找最大的K个数
编程之美——寻找最大的K个数 解法一: 我们先假设元素的数量不大,例如在几千个左右,在这种情况下,那我们就排序一下吧。在这里,快速排序或堆排序都是不错的选择,他们的平均时间复杂度都是 O(N * log2N)。然后取出前 K 个,O(K)。 总时间复杂度 O(N * log2N)+ O(K) = O(N * log2N)。 你一定注意到了,当 K=1 时,上面的算法也是
阅读更多...
【Get深一度】小波变换通俗解释 -算法与数学之美
链接:http://www.zhihu.com/question/22864189/answer/40772083 文章推荐人:杨晓东 从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。 下面就按照傅里叶-->短时傅里叶变换-->小波变换的顺序,讲一下为什么会出现小波这个东
阅读更多...
编程之美变形记——“49”的个数
昨天在杭电poj上看到一个道题。题目总结出来就是,给定一个正整数N,求出从1到N(包含N)之间49出现的个数。 举例:如N=101 则1到101之间101个数中,49出现一次。同时,409,4009(这样的数字不合法)。看到第一眼就想起来编程之美2.4有一道求“1”的个数的题目,这道题其实就是把“1”换成了49。 我第一眼想到的是用49进制,不过仔细考虑一下之后是不合适的。然后想了一个小时左
阅读更多...
编程之美2.4——“1”的数目
题目描述:给定一个正整数N,写出1到N(包含N)的所有正整数,然后数一下其中出现的所有N的个数。 举个例子,假设你输入的是11,则1到11的所有正整数为: 1,2,3,4,5,6,7,8,9,10,11 其中1出现了四次(1,10,11),请编写一个程序完成这个任务。 最暴力的解法这里不用说,因为如果面试的话肯定会死,微软的面试要是写出这种代码就能活下来也太容易了。 当我第一次看到这道题
阅读更多...
编程之美2.17之数组循环移位
题目描述:设计一个算法,把一个含有N个元素的数组循环右移K位,要求算法的时间复杂度位 O(Log2N) O(Log_2N),且只允许使用两个附加变量。 什么意思呢,就是说如果输入序列为:abcd1234,右移2位即变为34abcd12。唯一的要求就是使用两个附加变量。 其实这道题编程珠玑上面也出现过,书中给出的一种符合题意的解法是巧妙地进行翻转。以把abcd1234右移4位为例: 第一步:翻
阅读更多...
編程之美2.9:神奇的菲波那契數列
只要是聽說過遞歸,學過一點數據結構的人都聽過這個數列。其實高二數學課上也有,不過那時候我還在受馬克思主義的薰陶,不知編程爲何物。好了,據說這個數列源於一對繁殖能力特別驚人的兔子。 其實這個就是一個遞推公式: F(n)=⎧⎩⎨01F(n−1)+F(n−2)n = 0;n = 1;n>=2 F(n)=\begin{cases}0 & \mbox {n = 0;}\\1 & \mbox
阅读更多...
Visual Basic中的继承艺术:构建代码的层级之美
标题:Visual Basic中的继承艺术:构建代码的层级之美 在面向对象编程的殿堂中,继承是一种强大的机制,它允许新创建的类(子类)继承现有类(父类)的属性和方法。Visual Basic(VB.NET)作为.NET家族的一员,完美地支持了继承的概念。本文将深入探讨VB.NET中继承的工作原理,并通过详细的代码示例,展示如何利用继承构建高效、可维护的代码结构。 1. 继承的基本概念 继承允
阅读更多...
编程之美测试赛第二题—大神与三位小伙伴
大神与三位小伙伴 时间限制: 2000ms 单点时限: 1000ms 内存限制: 256MB 描述 给定2个树A和B,保证A的节点个数>=B的节点个数。 现在你需要对树A的边进行二染色。 一个好的染色方案,指不存在一个树A中的连通块,同时满足以下2个条件 1. 其中只有同色的边 2. 和B同构。两个树同构是指,存在一个一一映射(既是单射又是满射),将树B的各节点映
阅读更多...
领悟《数学之美》
研一的期末考试终于告一段落,虽说考试考得不咋的。但选的三门数学课(随机过程,数值分析,矩阵论),里面的马尔科夫链,矩阵的奇异值分解,贝叶斯网络......让我真正理解了吴军先生的数学之美,体会到了数学在人工智能,语音识别,信息处理的决定性作用。所以学了这三门数学,还是赚了的。
阅读更多...
[Algorithm][综合训练][非对称之美][添加字符][数组变换]详细讲解
目录 1.非对称之美1.题目链接2.算法原理详解 && 代码实现 2.添加字符1.题目链接2.算法原理详解 && 代码实现 3.数组变换1.题目链接2.算法原理详解 && 代码实现 1.非对称之美 1.题目链接 非对称之美 2.算法原理详解 && 代码实现 自己的版本:动态规划 --> 内存超限 --> 23.44%#include <iostream>#inc
阅读更多...
【编程之美】之Struts和Struts2对比
【概述】 在前面两篇文章中我们已经详细的讲解了Struts1和Struts2的配置,以及相应的小demo,下面就让我们来聊一聊二者之间的区别。在开聊之前先跟大家再次强调一点,Struts1和Struts2不是一个产品的升级,它们是两个不同的产品!!!这点很重要。 【对比】 1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类;Struts
阅读更多...
【编程之美】之初探Struts2
【前言】 上篇博客我们介绍了Struts1,感兴趣的童鞋可以去看看,今天我们继续往下探索Struts2。 【原理】 相同的节奏,我们首先先大致浏览一下Struts2的原理图: 在开始讲解之前,首先纠正一个小问题,图中的FilterDispatcher已经被StrutsPrepareAndExecuteFilter这个新方法替换了。 Struts2之所以叫Struts2并不是因为它和
阅读更多...
【编程之美】之初探Struts1
【前言】 我们接触开发也挺长时间了,对于一些架构也是有所了解,今天我们来一起学习一下MVC框架的典型代表——Struts1。 【原理】 任何事物都要知道其原理才能更好的帮助我们使用和理解它,首先让我们看一张图: 我们从这张图中可以大致了解一下Struts1的调用关系,以及很直观的向我们展现它的MVC具体应用,在Struts1中M即指的是Model,通常是使用ActionForm来表示
阅读更多...
设计模式之美笔记 —— 抽象类,接口
设计模式之美 - 8 设计模式之美 - 9 目录 面试中常见的问题: 抽象类的特点: 接口的特点: 抽象类存在的意义: 接口存在的意义: 抽象类和接口的应用场景的区别? 如何用抽象类和普通类来模拟接口? 基于接口而非实现编程的原因?有必要每个类都定义接口吗? 面试中常见的问题: 接口和抽象类的区别是什么?什么时候用接口?什么时候用抽象类?抽象类和接口存在的意义是什么?能
阅读更多...
设计模式之美笔记 —— 面向对象编程和面向过程编程的区别
设计模式之美-06,设计模式之美-07 目录 一、什么是面向过程和面向对象编程: 二、面向对象(OOP)编程相对于面向过程编程的优势: 1、OOP更适合复杂的程序开发 2、OOP代码更易 复用,扩展 和 维护 三、在实际设计过程中,哪些常见的设计属于面向过程变成的: 1、滥用getter 和 setter方法 2、设置大而全Utils类和constant类 3、定义数据和方法分离
阅读更多...
设计模式之美笔记——面向对象四大特性 之 封装
设计模式之美-05 封装特性 封装也叫作信息隐藏或者数据访问保护。 类通过暴露有限的访问接口,授权外部仅能通过类提供的方式来访问内部信息或者数据。 这个类与后端物理存储并不必须一一对应,只是将物理存储中的数据根据需求进行透出和修改读取的控制。 它需要编程语言提供权限访问控制语法来支持,例如 Java 中的 private、protected、public 关键字。 封装特性存在的意义:
阅读更多...
设计模式之美笔记——面向对象四大特性 之 多态
设计模式之美-05 多态:是指,子类可以替换父类,在实际的代码运行过程中,调用子类的方法实现。 多态也是很多设计模式、设计原则、编程技巧的代码实现基础,比如策略模式、基于接口而非实现编程、依赖倒置原则、里式替换原则、利用多态去掉冗长的 if-else 语句等等。 利用接口类实现多态 public interface Iterator {boolean hasNext();String n
阅读更多...
设计模式之美笔记 —— 中介模式
设计模式之美 - 73 一、中介模式的原理 1、原理: 中介模式定义了一个单独的中介对象,来封装一组对象之间的交互。将这组对象之间的交互委派给中介对象交互,来避免对象间的直接交互。 中介模式的设计思想和中间层(给代码解耦的一种方法就是引入中间层)很像,通过引入中介这个中间层,将一组对象建的交互,从多对多改成一对多。 2、举例 航空管制:为了让飞机在飞行的时候互不干扰,每架飞机都需
阅读更多...
数据结构与算法之美笔记 - 队列
数据结构与算法之美 - 09 一、队列的概念 队列,是一种操作受限的线性表数据结构,先进先出。 队列的应用: Java concurrent 并发包利用 ArrayBlockingQueue 来实现公平锁等。队列可以应用在任何有限资源池中,用于线程池请求排队,比如数据库连接池等。 ⚠️ CPU 资源是有限的,任务的处理速度与线程个数并不是线性正相关。相反,过多的线程反而会导致 CPU 频
阅读更多...
数据结构与算法之美笔记 —— 栈
目录 一、使用数组实现一个栈 通过动态扩容的数组可以实现一个动态扩容的栈 二、栈的复杂度分析 1、固定大小栈 2、动态扩容栈 三、栈的应用: 1、栈在函数调用中的应用 2、栈在表达式求值中的应用 3、栈在括号匹配中的应用 4、浏览器的前进、后退功能 5、实现整数反转 栈是一种“操作受限”的线性表,只允许在一端插入和删除数据,后进先出。当某个数据集合只涉及在一端插入和删除
阅读更多...
数据结构与算法之美笔记 —— 链表
目录 一、链表和数组的区别 1、内存的使用 2、CPU缓存机制的预读取 3、查找、插入和删除操作 二、单链表 三、循环链表 四、双向链表 五、如何轻松的写出正确的链表代码 数据结构与算法之美-06 一、链表和数组的区别 1、内存的使用 数组需要一块连续的内存空间来存储,对内存的要求比较高。如果我们申请一个 100MB 大小的数组,当内存中没有连续的、足够大的存储空间时,
阅读更多...