练习
码聋
东北某工科大学读书匠
展开
-
[力扣笔记]189.轮转数组
解题思路利用了平摊分析的思想,另外开辟一个同样大小的数组来存储每个数的“势能”(需要向右移动的次数)向右移动一次,势能降低;向左移动一次,势能增加每次循环遍历数组的每个元素,查看元素的势能,将其与目标位置的元素对换并改变相应势能在循环结束条件的设置上,一开始我是用flag = flag + a[i](i=0,1,2,…),结果到最后一个测试用例时提示溢出了,我改为当a[i]=0时flag=flag+1就通过了。我也不清除具体原因是什么,希望有大佬帮忙能解答代码#include <stdio原创 2022-02-03 21:38:32 · 968 阅读 · 0 评论 -
数据结构与算法刷题笔记——第二周:向函数传递结构体
将结构体传递给函数有以下三种方式(1)向函数传递结构体的单个成员。这种方法是传值调用,不会引起结构体成员值的变化,很少使用。(2)向函数传递结构体的完整结构。用结构体变量作为函数的实参,将整个结构体成员的内容复制给被调函数。这种方式仍然是传值调用,且占用内存空间较大。(3)向函数传递结构体的地址这是传地址调用,在函数内部对形参结构体成员值的修改将影响到实参结构体成员的值。这种方式比第二中效率更高。...原创 2021-09-29 22:00:51 · 419 阅读 · 0 评论 -
数据结构与算法刷题笔记——第一周1:双重指针一趟扫描链表
题目:输入一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:仅用一趟扫描实现。链表节点定义如下:struct ListNode {int val;ListNode *next;ListNode() : val(0), next(nullptr) {}ListNode(int x) : val(x), next(nullptr) {}ListNode(int x, ListNode *next) : val(x), next(next) {}};C语言版本:struc原创 2021-09-25 10:49:48 · 222 阅读 · 0 评论 -
数据结构与算法刷题笔记——第一周3:一维数组存储二维矩阵
题目助教小卢喜欢一种NN的矩阵:它由数字 1,2,3…NN 构成,矩阵中的元素各不相同,且每行、每列及矩阵的两条对角线上的数字之和都相同。助教小卢称这种矩阵为优美矩阵,并且在N为奇数时,因为助教小卢是一个优雅的人,可以通过优雅的方式生成这一矩阵。首先将 1 写在第一行的中间。之后,按如下方式从小到大依次填写每个数 (K=2,3,⋯,N×N) :若 (K-1) 在第一行但不在最后一列,则将 K填在最后一行, (K-1)所在列的右一列;若 (K-1) 在最后一列但不在第一行,则将 K 填在第一列,原创 2021-09-25 10:36:59 · 522 阅读 · 0 评论 -
数据结构与算法刷题笔记——第一周2:异或运算
题目:给定一个长度为n的整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。要求:写出线性时间复杂度的算法。进阶:给出O(1)额外空间复杂度的算法,不考虑函数实参占用的空间。进阶算法需要用到异或运算,由于C语言一年未用,有所生疏,特此记录。C语言中按位异或符^的作用0∧0=0,0∧1=1, 1^0=1,1∧1=0,一言以蔽之,“同假异真”。实际应用在本题中,提供的数组只有一个元素没有相同元,而两个数进行按位异或^运算时(将数据转换为二进制数),相同原创 2021-09-23 23:26:06 · 165 阅读 · 0 评论 -
python + tkinter编写B站“暂停选老婆”小程序
GUI编程最近老师在教GUI编程基础,发现利用tkinter编程还挺方便的。受老师写的“随机点名工具”启发,我动手写了能够随机选图的小程序。程序挺简单,但对于我这种小白来说成果喜人。在整体功能方面,该小程序由一个窗体,一个标签,一个画布,一个按钮组成;按钮与画布分别放于两个frame中。点击“开始”按钮后,绿色的画布上便开始显示不同的图片,此时按钮上的文字变为“停止”;点击“停止”按钮后,图片便停止滚动,按钮上的文字变为“开始“。对于图片显示的实现,我采用如下方法,将图片放于画布中。pic = ['原创 2021-08-06 18:36:56 · 302 阅读 · 3 评论