学习&练习
周周zlove
就怕你不说,就怕你不做,别让遗憾继续,一切都来的及。
展开
-
621 任务调度
intleastInterval(char*tasks,inttasksSize,intn){inthash[26]={0};intresult;inti;for(i=0;i<tasksSize;i++){hash[tasks[i]-'A']++;}//...原创 2020-03-07 17:05:19 · 292 阅读 · 0 评论 -
ubuntu-18.04 设置开机启动脚本(转载)
https://www.jianshu.com/p/79d24b4af4e5需要在ubuntu18.04上,将一个驱动模块设置为开机自动加载,但是发现直接添加rc.local文件无法生效。按照链接中的方法,可以生效。...转载 2020-01-09 10:03:14 · 239 阅读 · 0 评论 -
数据结构学习——将数组的元素循环右移k位
晚上完成算法实现。待续——题目:设计一个算法,将数组A(0...n-1)中的元素循环右移k位,假设原数组序列为a0, a1, ... an-2, an-1,移动后为an-k, an-k+1, ..., a0, a1, ... , an-k-1。要求:只用一个元素大小的附加存储;元素移动或交换次数与n线性相关。例:n= 10, k = 3;原始数组:0,1,2,...原创 2020-01-07 17:46:17 · 1128 阅读 · 0 评论 -
通信原理略读
1、码间串扰:通俗的讲,如连续几个高电平的尾巴,导致后续的低电平被前面的尾巴叠加误导致为高电平;多径延迟,就是同一个信号不同传输路径不同步,延迟的信号被误认为是下一个信号。2、频率偏移多普勒效应引起。如,高铁上的信号。3、信号衰落多径传播,由于累加,导致信号的变化会出现快速变化(或慢速变化)。手机接收到的信号有:1、自由空间的衰减2、反射(地面、屋顶等)...原创 2020-01-07 17:45:24 · 257 阅读 · 0 评论 -
TIFF图像文件格式详解——转载
1 什么是TIFF?TIFF是Tagged Image File Format的缩写。在现在的标准中,只有TIFF存在, 其他的提法已经舍弃不用了。做为一种标记语言,TIFF与其他文件格式最大的不同在于除了图像数据,它还可以记录很多图像的其他信息。它记录图像数据的方式也比较灵活, 理论上来说, 任何其他的图像格式都能为TIFF所用, 嵌入到TIFF里面。比如JPEG, Lossless JPEG...转载 2019-12-19 16:43:11 · 1769 阅读 · 0 评论 -
nocoder——记负均正II
注意两点:1、判断输入结束2、打印格式的小数点位数#include <stdio.h>#include <string.h>int main(){ int cnt1 = 0; int cnt2 = 0; double average = 0.0; int tmp; while(scanf("%d", &tmp) != EOF) { ...原创 2019-12-13 17:52:49 · 163 阅读 · 0 评论 -
nowcoder——字符逆序
有两个地方需要注意1、如果使用哪个scanf进行输入,则空格会被认为是 \02、最后的输出中,不能打印换行符,否则会被认为错误#include <stdio.h>#include <string.h>int main(){ char input[100]; char output[100]; int i = 0; int length;...原创 2019-12-13 17:35:04 · 170 阅读 · 0 评论 -
nowcoder——立方
#include <stdio.h>#include <time.h>int main(){ double num; double result; int tmp; double big; double small; scanf("%lf",&num); //先看大于1的情况 if (num > 1) { big = nu...原创 2019-12-13 17:09:44 · 115 阅读 · 0 评论 -
nowcoder——最小公倍数
主要问题在于特殊情况的判断#include <stdio.h>int main(){ int num1; int num2; int min; int max; int tmp; int i=0; int a[100] = {0}; int result = 1; scanf("%d\n",&num1); scanf("%d",...原创 2019-12-07 17:36:13 · 196 阅读 · 0 评论 -
opencv2.4.11入门——读取视频并显示图片
一个简单的c调用:1、首先需要定义一个CvCapture结构体2、使用cvQueryFrame函数获取到一帧图像3、创建一个窗口cvNamedWindow3、使用cvShowImage函数进行显示编译选项gcc -c xxx.c -o xxx -I/path/to/include -lopencv_highgui -lopencv_core -lm对pFrame结构体成...原创 2019-12-06 16:20:54 · 330 阅读 · 0 评论 -
SDL2.0学习——基本的显示
上文中解码到了一帧图片,保存成文件显然不如直接显示出来更为直观。所以计划使用SDL进行图片的显示。参考教程:雷霄骅雷神的博客/** * 最简单的SDL2播放视频的例子(SDL2播放RGB/YUV) * Simplest Video Play SDL2 (SDL2 play RGB/YUV) * * 雷霄骅 Lei Xiaohua * leixiaohua1020@126....原创 2019-12-04 13:47:01 · 401 阅读 · 0 评论 -
ffmpeg学习——基本的解码流程
由于工作需要,所以基本了解了一下视频的解码流程。参考教程为:1、王纲的《跟我一起学FFmpeg》系列2、雷霄骅雷神的博客原理部分暂时没有整理,后期可以补充一下知识。ffmepg的api使用方面1、打开一个输入流2、设置解码器3、读取每一个包,并获取到一帧的数据4、交给解码器解码下面的代码就是,读取一个视频或者文件,将其中的一帧图片保存为BGR24格式的文件,...原创 2019-12-04 10:22:37 · 445 阅读 · 0 评论 -
关于scanf函数吃掉回车符四种办法 & Ubuntu14.04和16.04官方默认更新源sources.list和第三方源推荐(干货!)
https://blog.csdn.net/qq_42304888/article/details/94992661scanf函数的一些操作回车符问题1.在scanf()中使用’\n’屏蔽回车符号。scanf("%d\n",&n); //使用’\n’过滤回车scanf("%c",&c);2.在scanf()格式串最前面添加空格,屏蔽回车字符scanf...转载 2019-12-03 23:30:49 · 375 阅读 · 0 评论 -
nowcoder——句子逆序
题目描述将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI”所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符接口说明/***反转句子**@paramsentence原句子*@return反转后的句子*/publicStringreverse(Stringsentence)...原创 2019-12-03 17:51:42 · 107 阅读 · 0 评论 -
nowcoder——数字颠倒
题目描述描述:输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整数以字符串的形式逆序输出示例1输入复制1516000输出复制0006151老实讲,我不知道为什么会有这种题目存...原创 2019-12-03 16:57:10 · 90 阅读 · 0 评论 -
在linux环境下编译运行OpenCV程序的两种方法
https://www.cnblogs.com/woshijpf/p/3840530.html转载 2019-11-28 14:58:30 · 157 阅读 · 0 评论 -
nowcoder——提取不重复的整数
如果不想引入c库的pow函数,可以使用自己实现的mypow函数static int mypow(int base, int n){ int result = 1; int i; for (i = 0; i < n; i++) { result = result*base; } return result;}//思路,输入一个整数,依次取出每一位//利用a...原创 2019-11-28 10:32:01 · 96 阅读 · 0 评论 -
数据结构——链表学习
先看单向链表,构建一个链表总共分两步:1、首先定义一下链表节点的结构体,这就是最简单的链表,包含一个值和一个指向下一个节点的指针结构体大小(64位):8 + 8 =16字节typedef struct _listnode{ //int key; int val; struct listnode * next;}listnode;2、节点定义出来了,但是现在还是空空如...原创 2019-11-23 15:31:26 · 2253 阅读 · 0 评论 -
为公司的pcie接口FPGA板卡编写上位机软件——源文件分析3——硬件操作
[米联客MZ7100]XILINX Zynq7000 7010/7020 ARM+FPGA核心板从代码中可以看到,通过mmap函数将寄存器空间映射出来后,就可以向这些映射的虚拟地址写入控制参数,从而操作硬件。那么这些参数是怎么来的,肯定需要看用户手册才能知道这些命令的含义。...原创 2019-11-23 10:09:44 · 1101 阅读 · 0 评论 -
为公司的pcie接口FPGA板卡编写上位机软件——源文件分析3——多线程函数分析
根据自己的理解,程序分为三个部分:1、硬件相关的操作2、使用多线程与板卡交互的逻辑处理3、bmp文件的读取和写回上面已经初步了解了第3条,下面看第2条这其中包含了两个同步:1、软件和硬件的同步,即软件需要读取设备文件,然后判断是否可以发送或者读取图像;2、软件中线程间的同步,判断完成后,通过信号量告知其它线程去读取或者发送图像。所以,这需要在两个地方阻塞:1、...原创 2019-11-21 16:56:51 · 1438 阅读 · 1 评论 -
nowcoder——合并表记录
题目描述数据表记录包含表索引和数值(int范围的整数),请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)示例1输入40 10 21 23 4输出0 31 23 4其...原创 2019-11-21 23:58:31 · 72 阅读 · 0 评论 -
C语言多线程编程学习记录1
由于工作中用到了多线程编程,所以需要快速入门。学习教程来自于博客:cnblogs.com/zzdbullet/p/9526130.html介绍:什么是线程,线程的优点是什么线程在Unix系统下,通常被称为轻量级的进程,线程虽然不是进程,但却可以看作是Unix进程的表亲,同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有...转载 2019-11-21 17:56:46 · 287 阅读 · 0 评论 -
leetcode刷题——两数相加
这个是对链表操作的考察,虽然明白其思路,但是对链表的操作还是不熟练。经过思考,对链表的操作有了理解,构建一个链表分为两步:1、新建一个链表头结点;2、每插入一个新节点,要进行连接,即让上一个的next成员指向新的节点。但是对最后一步有疑问,为什么会多一个节点?/** * Definition for singly-linked list. * struct ListNod...原创 2019-11-21 11:01:58 · 133 阅读 · 0 评论 -
leetcode刷题——两数之和——————待续
目前掌握的方法是穷举,两层循环可以解决,但是显然是最笨的方法,哈希表的方法可以理解其原理,但是现在还写不出来代码。需要练习。/*int* twoSum(int* nums, int numsSize, int target, int* returnSize){ int i, j; int *res = (int *)malloc(sizeof(int)*2); *returnSize...原创 2019-11-21 10:10:42 · 169 阅读 · 0 评论 -
为公司的pcie接口FPGA板卡编写上位机软件——源文件分析2——BMP文件的读入和写回
由于同事未能准备好硬件,所以计划先做一个实验——将bmp文件读入到内存,稍作修改后,写回到文件,这样就基本完成了画框的工作,相当于分两步走。从示例代码中剥离出了bmp文件的读入和写回代码,经过测试可以进行文件的读取和写入。接着上文的代码分析。int main(int argc, char* argv[]){ put_pic_to_sys_memory("./image/"); ge...原创 2019-11-20 17:39:26 · 694 阅读 · 0 评论 -
为公司的pcie接口FPGA板卡编写上位机软件——源文件分析1——逐行阅读并加以注释
#include <assert.h>#include <fcntl.h>#include <getopt.h>#include <stdint.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unis...原创 2019-11-19 16:42:18 · 1963 阅读 · 2 评论 -
为公司的pcie接口FPGA板卡编写上位机软件——Makefile解读
公司购买了某公司的一块FPGA的板卡,想给这个板卡发送图片,然后得到返回的坐标,再往图片上框出识别到的物体。驱动已经由供应商给出,编译安装正常,板卡端的软件由同事烧写,所以我的任务是写一个应用软件,给板卡发送数据并读取处理结果。参考例程为供应商给出的例程2.主机平台为龙芯,mips64架构首先看Makefile——这也是自己一直想掌握却没有掌握的知识点从头部的注释中知道,这个...原创 2019-11-19 16:28:11 · 1638 阅读 · 0 评论 -
nowcoder——取近似值
#include <stdio.h>int main(){ int result; float input; scanf("%f", &input); result = (int)(input + 0.5); printf("%d", result); return 0;}途中遇到了一个奇怪的现象,如果输入的时个位数,则输出1,两位...原创 2019-11-18 16:46:23 · 83 阅读 · 0 评论 -
nowcoder——质数因子
#include <stdio.h>int main(){ long num; int bak; long max; int i; int count = 0; scanf("%ld", &num); bak = num; max = num / 2; for (i = 2; i<= max; ) { if (num % i == 0)...原创 2019-11-18 10:26:24 · 114 阅读 · 0 评论 -
nowcoder——十六进制转十进制字符串
看了牛客网的回答,基本上都是利用了检测的漏铜,直接输出了int整数,而非字符串。#include <stdio.h>static int * a2A(char * str){ if (*str >= 'a' && *str <= 'z') *str = *str - 32; return str;}static int myp...原创 2019-11-14 17:08:17 · 95 阅读 · 0 评论 -
nowcoder——字符串分隔
#include <stdio.h>#include <string.h>int main(){ char a[100]; char b[100]; int i, j; gets(a); gets(b); i =0; while(a[i]) { if ((i != 0) && (i % 8 == 0)) prin...原创 2019-11-12 17:45:18 · 118 阅读 · 0 评论 -
nowcode——明明的随机数
#include <stdio.h>int main(){ int inputArray[1001]; int n; int tmp; while(scanf("%d",&n)!=EOF) { for (int i = 0; i<1001; i++) { inputArray[i] = 0; ...原创 2019-11-12 15:30:47 · 488 阅读 · 0 评论 -
nowcode -计算字符的个数
#include <stdio.h>#include <string.h>int main(){ char string[5000]; int i = 0, N = 0; char _char; int offset = 0; gets(string); //printf("please input the char: \n"); scanf("%...原创 2019-11-12 14:03:09 · 137 阅读 · 0 评论 -
nowcode -字符串最后一个单词的长度
#include <stdio.h>#include <string.h>int main(){ char string[5000]; int i = 0, N = 0; int len; int flag = 0; //printf("please input the string: \n"); gets(string); len = st...原创 2019-11-12 11:50:30 · 99 阅读 · 0 评论 -
GDB学习记录
到现在没有使用过gdb工具,这肯定是不行的。从零开始学习——最起码得学会基本的功能。参考博客:https://www.cnblogs.com/arnoldlu/p/9633254.html1、直接在目标板上运行gdb调试①b <文件:行号> <函数><文件名:函数名>等②delete clear 删除③disable 和enable 可...原创 2019-11-09 16:54:11 · 114 阅读 · 0 评论 -
刷题-2
偶然看到有人问到关于移位的面试题所以想着也整理一下,试验一下:1、对于int型正数,右移左端补0,左移右端补0,左端符号位均保持不变,均为0.2、对于int型负数,右移左端补1,左移右端补0,左端符号位均保持不变,均为1.也就是说,对于int型的整数,正数的左移和右移都是补0,负数的左移补0,右移补1。cwp@perfxlab:~/work/shiyan/2/ramblock...原创 2019-11-08 15:51:32 · 130 阅读 · 0 评论 -
aarch64汇编入门学习——1
蓝牙耳机没电,公司事务较为清闲,再不能看教程的情况下,计划看下arm64的汇编代码。可以先写一个简单的helloworld程序试验一下。如果直接使用c语言,调用printf函数,势必会链接c库,那么反汇编代码将会比较复杂,不利于入门,于是计划,是否可以直接使用汇编语言,来写个最简单的程序,输出helloworld。参考文章:https://blog.csdn.net/yhb10478183...原创 2019-11-06 11:27:27 · 911 阅读 · 1 评论