- 博客(140)
- 资源 (23)
- 收藏
- 关注

原创 提升开发能力的方向与实践:从问题发现到解决方案的执行
从问题发现到解决方案的实施,软件开发是一个不断提升的过程。只有通过不断的学习与实践,才能真正提升开发能力,进而推动个人成长和团队协作。每一个开发者都应将自己置身于不断反馈与改进的循环中,不断加强自己在需求分析、问题解决、项目管理等方面的能力,最终达到完整有效的解决问题的目的。
2024-12-03 17:59:47
810
原创 指导思维的重要性:比具体理论经验更关键
但事实上,真正决定开发效率与质量的,不是单一技术的掌握,而是开发者的指导思维。开发工作中,遇到的问题往往没有现成的解决方案。此时,靠现成经验是无法解决问题的,而指导思维能够帮助开发者从问题的结构化入手,分析原因并找到突破口。例如,流水线具备并发功能的知识点本身没有解决意义,关键在于如何评估并发是否适合当前需求,以及如何设计合理的并发策略。这不仅仅是对问题的逻辑推理,还包括对问题背景的快速理解,对团队资源的合理利用,以及对目标的明确把握。通过与团队的讨论,了解他人对问题的看法,能让自己对问题的理解更加全面。
2024-12-23 17:48:03
695
原创 利用编程思维做题之设计一个顺序栈来将十进制数转为八进制数
通过设计一个顺序栈并利用栈的基本操作,我们能够高效地将十进制数转换为八进制数。该方法利用栈的先进后出特性,逐步转换并输出结果,具有较好的时间和空间效率。
2024-12-06 18:17:27
648
原创 理解函数定义的四个关键内容:操作条件、操作逻辑、变量指向、返回值
操作条件:确保函数的输入数据合法,避免无效操作。合理的前置条件可以提升代码的鲁棒性。操作逻辑:函数的核心功能,它决定了函数执行时的具体操作。编写清晰、简洁的操作逻辑有助于提高代码的可维护性。变量指向:函数内部数据的存储方式。合理的变量指向可以确保数据流动的正确性和函数逻辑的一致性。返回值:函数的输出,是调用者使用的结果。返回值的设计应清晰且有意义,确保函数能够与其他代码进行良好的交互。通过这四个方面的设计,函数不仅能实现其功能,还能保持高质量的代码结构,易于理解和扩展。
2024-12-05 17:49:01
888
原创 利用编程思维做题之最小堆选出最大的前10个整数
通过使用最小堆,我们能够以 O(n) 的时间复杂度找到并输出最大的 10 个数。这种方法比直接排序更高效,尤其是当数据量很大时。
2024-11-26 18:48:30
657
原创 利用编程思维做题之计算二叉树最大宽度
二叉树的宽度是指某一层中节点的数量,最大宽度则是所有层中的最大值。// 队列的节点数组。// 队列的节点数组。// 指向左子节点的指针。// 指向右子节点的指针。// 指向左子节点的指针。// 指向右子节点的指针。在这棵树中,第 3 层的宽度是 3(节点 4、5 和 6),因此最大宽度为 3。// 指向左子节点的指针。// 指向右子节点的指针。printf("二叉树的最大宽度是: %d\n", maxWidth);#define MAX_SIZE 100 // 定义队列的最大大小。
2024-10-27 14:05:37
1165
原创 利用编程思维做题之二叉链表计算二叉树高度的算法
通过递归遍历二叉树,可以有效地计算其高度。这种方法简单且易于理解,对于深度优先搜索等其他操作也具有一定的实用性。
2024-10-27 13:20:11
901
原创 代码不是搬砖,请往框架开发方向走
一个框架的核心特质在于其抽象性、模块化、可扩展性和通用性,通过这些特点为开发者提供一套统一、高效、可复用的开发标准,简化常见的开发工作,增强开发效率。如果你的解决方案满足这些条件,就可以称之为一个“框架”。
2024-10-25 09:39:32
763
原创 利用编程思维做题之统计有向图中出度为零的顶点个数
通过该算法,我们可以有效统计出有向图中出度为零的顶点个数。通过遍历邻接表,并统计出度,可以高效解决该问题。
2024-10-23 20:57:47
975
原创 利用编程思维做题之将两个有序的单链表合并成一个新的有序单链表
通过该算法,我们能够高效地将两个有序单链表合并为一个新的有序链表。该算法的核心是通过逐步比较两个链表的当前结点,维护一个合并后的链表。
2024-10-13 23:02:41
778
原创 利用编程思维做题之将无向图的邻接矩阵转换为邻接表
通过该算法,我们能够将无向图的邻接矩阵转换为邻接表。相较于邻接矩阵,邻接表在表示稀疏图时更加节省空间,适合边数较少的图。该算法的核心是矩阵遍历和链表操作,通过简单的指针操作实现图的结构转换。
2024-10-12 17:05:58
1421
1
原创 利用编程思维做题之求节点 x 在二叉树中的双亲节点算法
通过递归遍历二叉树,可以有效地查找目标节点的双亲节点。如果树结构较为复杂,递归的方法也能较为清晰地处理问题。
2024-10-12 16:35:22
1259
原创 应对算法编程考试的编程技巧
算法编程考试中,优化时间和空间复杂度是非常重要的一部分。你需要明确:- **时间复杂度**:通过分析算法的循环次数、递归深度等来确定程序运行的时间。- **空间复杂度**:通过分析算法使用的额外内存来确定其对内存的消耗。**案例**:在排序算法中,归并排序的时间复杂度为 O(n log n),但其空间复杂度为 O(n)。快速排序的时间复杂度也是 O(n log n),但在原地排序时,空间复杂度可以优化为 O(1)。
2024-10-12 11:55:46
596
原创 利用编程思维做题之在链式存储结构上设计直接插入排序算法。
通过直接插入排序算法,我们成功地对单链表进行了排序。该方法对链表的操作比较灵活,主要是通过指针的调整来实现排序。
2024-10-12 11:21:15
1128
原创 利用编程思维做题之链表内指定区间反转
通过上述方法,我们成功实现了对单链表指定区间的节点进行反转的操作。关键在于正确定位需要反转的区间,并在反转过程中维护好前后节点的连接关系。此方法不仅有效解决了本题,还可以应用于其他涉及链表部分反转或节点调整的题目。熟练掌握链表操作和指针的使用,对于处理类似问题至关重要。
2024-10-11 18:14:29
944
原创 利用编程思维做题之反转链表
通过上述步骤,培养我们理解题目、分析题目到解决题目的思维,确定解决方案且成功实现了代码。抽象出这种方法,它不仅适用于链表反转的问题,也可以推广到其他需要遍历和修改链表结构的情况。
2024-10-11 11:31:35
820
原创 利用编程思维快速理解需求与设计逻辑
利用编程思维快速理解需求与设计逻辑,能够有效提升软件开发的效率和质量。从需求分析到设计实现,再到验证与迭代,整个过程都是系统化和结构化的。在未来的项目中,持续应用这些方法,将使我们更好地应对复杂的需求,最终交付符合用户期待的高质量产品。通过不断实践,我们不仅能提高自身的能力,也能推动团队的整体进步。
2024-10-09 16:35:38
531
原创 编程技巧:提高代码健壮性与可维护性的关键方法(以 Shell 为例)
在脚本编写和自动化工作中,良好的编程技巧对于确保代码的健壮性和可维护性至关重要。以下是一些关键的编程技巧,包括模块化设计、单元测试、版本控制、处理边界条件、错误处理、中间值保存和创建 Flag。本文将通过 Shell 脚本示例来阐述这些技巧的应用。
2024-10-09 16:17:40
1060
原创 数据结构: 数组在算法中的应用
数组是计算机科学中的一种基础数据结构,它在算法中有着广泛的应用,其关键要素是索引与索引对应的值。请注意,这些代码示例需要适当的辅助函数(如 swap )和主函数来运行。此外,一些算法(如KMP算法)需要额外的辅助函数来计算最长公共前缀数组(LPS)。
2024-10-07 11:58:14
1333
原创 数据结构的组成:构建高效算法的基础
数据结构是计算机中存储、组织数据的方式。一个好的数据结构可以带来高效的数据使用,从而提高程序的性能。数据结构不仅包括数据的逻辑关系,还包括数据的物理存储。
2024-10-05 21:48:39
515
原创 从构建个性化学习系统维度提高认知转化率
在社会中摸爬滚打,我们逐渐领悟到一个深刻的道理:“没人可以赚到认知之外的钱”。这句话揭示了一个事实:真正的财富和成就,源自于个人的认知水平。我回顾了自己这么多年,虽然一直有心想在一个领域做出点成绩,可是为什么有一种感觉“明明花了时间但是依然没有发生质变,仿佛做了假努力”,所以我曾“苦恼”过为什么没人来打开我的思维,彻底改变我的生活轨迹。但是我们不能钻进这个牛角尖,首先我们的确只是一个普通人,认知程度普遍会在“学霸”开悟之后几年。
2024-10-01 11:28:44
871
原创 学习了一个linux 重启的脚本
学习了一个linux 重启的脚本//先建立一个count.txt计数文件touch /home/count.txt//然后写入初始值vim /home/count.txt//写入1,保存退出//然后到/etc下找到rc.localvim /etc/rc.local 或 vim /etc/rc.d/rc.local//写入脚本:touch /var/lock/subsys/localcount=`cat /home/count.txt` //等式左右两边不要空格..
2020-10-26 16:46:10
1270
原创 数据库增删查改表,用户,主键,外键
1、进入sqlplus(不区分大小写,除了特殊要大写的)sqlplus system/yaoxiyao as sysdbaconn scott/yaoxiyao2、创建一个表空间(1)为orcl数据库创建一个永久性的表空间orcl1,区自动扩展,段采用自动管理方式create tablespace orcl1 datafile 'D:\app\oradata\yao\da...
2019-06-26 09:22:10
717
原创 微信小程序实验图片拖拽和限制移出屏幕
wxml文件<view class="view" style="left:{{left}}px;top:{{top}}px;" bindtouchmove="viewTouchMove"><image class='img' src='/imgs/c.png'></image></view>wxcc文件.img{ ...
2019-03-26 21:15:15
2362
原创 用蒙特卡洛方法求定积分
思想:定积分面积=阴影部分的随机数与正方形面积中总的随机数之比用蒙特卡洛方法求定积分 n=10;for i=1:4 %4次模拟point=n.^i;%模拟的随机点数RandData=rand(2,point);%产生在x~[0,1],y~[0,1]上的随机数scatter(RandData(1,:),RandData(2,:))Below=find(Ran...
2018-08-20 09:30:29
20561
1
原创 Matlab小实例(七)
%meshgrid是MATLAB中用于生成网格采样点的函数。[x,y]=meshgrid(-3:.1:3,-2:.1:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);[fx,fy]=gradient(z);fx=fx/0.1;fy=fy/0.1;zx=-exp(-x.^2-y.^2-x.*y).*(-2*x+2*x.^3+x.^2.*y-4*x.^2-2*x...
2018-08-20 08:58:38
1327
原创 Matlab小实例(五)
先介绍一下Matlab有关复变函数的知识: 上实例: cplxroot(3);%本来应该是cplxroot(n,m) 不指定默认m=20,n=3figure,%创建一个显示图形的窗口cplxroot(4);%这里的n=4 这句代码表示z^1/4,其中z=cplxgrid(20) ...
2018-08-18 16:11:20
1383
原创 Matlab小实例(四)
x=[0:0.01:2 2+eps:0.01:4,4];%一行多列矩阵y=exp(x.^2).*(x<=2)+80./(4-sin(16*pi*x)).*(x>2);y(end)=0;x=[eps,x];y=[0,y];%fill(x,y,c) x和y是要画的点,可以同为向量或者同为矩阵。%参数c是一个颜色向量,可用符号表示,如你给的'r',也可用[r,g,b]表示其中...
2018-08-18 15:33:17
1305
原创 Matlab小实例(三)
% 解释一:linspace 线性空间,取值范围为0到2*pi,默认包含100个点%也就是:从0到2*pi,等间隔的取100个点%点数可以修改%如:linspace(0,2*pi,30),那么只取30个点%类似的有:% logspace,非线性空间,取值非线性,但是对数值为线性的,同样包含100个 %解释二:linspace()生成线性等间距格式行向量%其调用格式为:...
2018-08-18 14:54:05
12420
原创 Matlab小实例(二)
%polyfit用于多项式曲线拟合%p=polyfit(x,y,m)%其中, x, y为已知数据点向量, 分别表示横,纵坐标, m为拟合多项式的次数, %结果返回m次拟合多项式系数, 从高次到低次存放在向量p中.%y0=polyval(p,x0)%可求得多项式在x0处的值y0x0=0:.1:1;y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0);p3=po...
2018-08-18 14:52:38
616
原创 Matlab小实例(一)
x=0:.1:10; %0 0.1 0.2…10 一维矩阵 等差y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);%点乘%匿名函数,结构与目标函数差不多,系数通过高精度拟合f=@(a,x)a(1)*exp(-a(2)*x)+a(3)*exp(-a(4)*x).*sin(a(5)*x);%建立函数原型,则可以根据它来进行下面的求取系数的...
2018-08-18 14:50:09
28256
3
原创 jQuery 知识点大纲
jQuery是一个JavaScript库jQuery选择器演示jQuery的hide()函数,隐藏当前的HTML元素$(this).hide() 演示jQuery的hide()函数,隐藏所有<p>元素$("p").hide()演示jQuery的hide()函数,隐藏所有class="test"的元素$(".test").hide()演示jQuery的hide...
2018-08-17 17:02:48
418
原创 使用Canvas绘图(6)--渐变
渐变由CanvasGradient实例表示,很容易通过2D上下文来创建和修改。要创建一个新的线性渐变,可以调用createLinearGradient()方法。这个方法接收4个参数:起点的x坐标、起点的y坐标、终点的x坐标、终点的y坐标。调用这个方法后,它就会创建一个指定大小的渐变,并返回CanvasGradient对象的实例。创建了渐变对象后,下一步就是使用addColorStop()方法来...
2018-08-16 14:37:44
3367
原创 使用Canvas绘图(5)--阴影
2D上下文会根据以下几个属性的值,自动为形状或路径绘制出阴影。shadowColor:用CSS颜色格式表示的阴影颜色,默认为黑色。shadowOffsetX:形状或路径x轴方向的阴影偏移量,默认为0.shadowOffsetY:形状或路径y轴方向的阴影偏移量,默认为0.shadowBlur:模糊的像素数,默认为0,即不模糊。这些属性都可以通过context对象来修改。只要在绘制...
2018-08-15 16:25:01
1280
原创 使用Canvas绘图(4)-绘制图像
2D绘图上下文内置了对图像的支持。如果你想把一幅图像绘制到画布上,可以使用drawImage()方法。根据期望的最终结果不同,调用这个方法时,可以使用三种不同的参数组合。最简单的调用方式是传入一个HTML<img>元素,以及绘制该图像的起点的x和y坐标。例如:var image=document.images[0];context.drawImage(image,10,10);...
2018-08-15 16:03:33
1698
仿微信的小程序.zip
2019-06-26
struts所需要的jar包
2018-12-14
递推求解资源
2017-09-13
贪心算法总结
2017-09-13
ACM程序设计 简单数学题
2017-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人