自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 问答 (2)
  • 收藏
  • 关注

原创 TM1638的8个LED灯和8个数码管的使用

TM1638的8个LED灯和8个数码管的使用

2023-09-14 10:09:29 980

原创 leetcode 13. 罗马数字转整数

leetcode 13 罗马数字转整型

2022-10-31 22:11:09 146 1

原创 算法:采购方案

leetcode LCP 28. 采购方案小力将 N 个零件的报价存于数组 nums。小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案。注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1示例 1:输入:nums = [2,5,3,5], target = 6输出解释:预算内仅能购买 nums[0] 与 nums[2]。示例 2:输入:nums = [2,2,1,9]

2022-04-11 21:13:49 377

原创 算法:找不同

leetcode 找不同两个字符串,一个字符串是另一个字符串重排后,且添加了一个字符得到的一个字符串,需要找到这个被添加的字符串。代码:// 先对两个字符串进行排序void quikSort(char *s, int start, int end) { if (start < end) { int left = start, right = end; char tmp = s[start]; while (left < righ

2022-03-20 22:36:23 416

原创 算法:设计Goal解析器

leetcode 设计Goal解析器解析字符串,将 G 转化为 G,() 转化为 o,(al) 转化为 al。代码:char * interpret(char * command){ int len = strlen(command); int cur = 0; char *result = malloc(sizeof(char) * (len + 1)); memset(result, 0, len + 1); for (int i = 0; i <

2022-03-20 22:28:25 984

原创 算法:交替合并字符串

leetcode 交替合并字符串两个字符串,交替加入到一个字符串中,如果一个字符串较长,直接加在后面。代码:char * mergeAlternately(char * word1, char * word2){ int l1 = strlen(word1), l2 = strlen(word2); char *result = malloc(sizeof(char) * (l1 + l2 + 1)); memset(result, 0, l1 + l2 + 1);

2022-03-20 22:16:12 1618

原创 算法:重塑矩阵

leetcode 重塑矩阵对一个矩阵的行数和列数进行变形,且其行遍历的顺序不变。代码:/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller c

2022-03-19 20:00:04 221

原创 算法:矩阵对角线元素的和

leetcode 矩阵对角线元素的和一个正方形矩阵,求对角线元素的和代码:int diagonalSum(int** mat, int matSize, int* matColSize){ int sum = 0; for (int i = 0; i < matSize; i++) { sum = sum + mat[i][i]; sum = sum + mat[i][matSize - 1 - i]; } if (matSiz

2022-03-19 19:46:33 3112

原创 算法:最小路径和

leetcode 最小路径和一个二维数组,找出一条从左上角到右下角路径最短的。代码:int minPathSum(int** grid, int gridSize, int* gridColSize){ // 动态规划计算走到每格的最短路径 int path[gridSize][*gridColSize]; memset(path, 0, gridSize * (*gridColSize)); // 初始化第一行和第一列 path[0][0] = grid[

2022-03-19 19:35:50 115

原创 算法:简易银行系统

leetcode 简易银行系统一个简单的银行系统,主要涉及初始化,转账,取钱,存钱。代码:typedef struct { int bankSize; long long * money;} Bank;Bank* bankCreate(long long* balance, int balanceSize) { Bank * bank = malloc(sizeof(Bank)); bank->bankSize = balanceSize; b

2022-03-18 17:43:10 408

原创 算法:所有奇数长度子数组的和

leetcode 所有奇数长度子数组的和对于一个正整数数组,计算其所有奇数长度的子数组的和。代码:int sumOddLengthSubarrays(int* arr, int arrSize){ int sum = 0; for (int i = 1; i <= arrSize; i += 2) { for (int j = 0; j < arrSize; j++) { if (j + i > arrSize) break

2022-03-18 17:19:17 333

原创 算法:移动零

leetcode 移动零把零移动到末尾,其他元素顺序不变代码:void moveZeroes(int* nums, int numsSize){ int count = 0; int cur = 0; for (int i = 0; i < numsSize; i++) { if (nums[i] == 0) { count++; continue; } else {

2022-03-18 16:56:48 108

原创 算法:最富有客户的资产量

leetcode 最富有客户的资产量题目描述很复杂,简化就是对一个二维数组的每行求和,找出最大值。代码:int maximumWealth(int** accounts, int accountsSize, int* accountsColSize){ int max = 0; for (int i = 0; i < accountsSize; i++) { int tmp = 0; for (int j = 0; j < *accoun

2022-03-18 16:50:42 93

原创 算法:下一个更大元素Ⅰ

leetcode 下一个更大元素Ⅰ两个数组,nums1和nums2,其中nusm1为nums2的子集,从nums2中找到与nums1中相等的元素,然后在nus2中相等元素的之后找到比当前元素大的元素,如果有,就保存其值,没有就为-1。代码:/** * Note: The returned array must be malloced, assume caller calls free(). */int* nextGreaterElement(int* nums1, int nums1Size

2022-03-18 16:44:45 99

原创 算法:缀点成线

leetcode 缀点成线给定一个数组 coordinates ,其中 coordinates[i] = [x, y] , [x, y]表示横坐标为 x、纵坐标为 y 的点。请你来判断,这些点是否在该坐标系中属于同一条直线上。代码:bool checkStraightLine(int** coordinates, int coordinatesSize, int* coordinatesColSize){ // x 轴坐标相等的情况,用通用方式计算分子为零 if (coordina

2022-03-18 16:38:55 232

原创 算法:二叉树的中序遍历

leetcode 二叉树的中序遍历已知一个二叉树的根节点root,返回它的中序遍历代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; *//** * Note: The returned array must be malloced, assum

2022-03-18 16:19:27 297

原创 算法:判断能否形成等差数列

leetcode 判断能否形成等差数列给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。代码:void quiksort(int * arr, int start, int end) { if (start < end) { int left = start, right = end; int tmp = ar

2022-03-16 17:33:34 1034

原创 算法:仅执行一次字符串交换能否是两个字符串相等

leetcode 仅执行一次字符串交换能否是两个字符串相等给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。代码:bool areAlmostEqual(char * s1, char * s2){ int len = strlen(s1); int count =

2022-03-16 17:21:25 694

原创 算法:找到最近的有相同 X 或 Y 坐标的点

leetcode 找到最近的有相同 X 或 Y 坐标的点给你两个整数 x 和 y ,表示你在一个笛卡尔坐标系下的 (x, y) 处。同时,在同一个坐标系下给你一个数组 points ,其中 points[i] = [ai, bi] 表示在 (ai, bi) 处有一个点。当一个点与你所在的位置有相同的 x 坐标或者相同的 y 坐标时,我们称这个点是 有效的 。请返回距离你当前位置 曼哈顿距离 最近的 有效 点的下标(下标从 0 开始)。如果有多个最近的有效点,请返回下标 最小 的一个。如果没有有效点,请

2022-03-15 21:33:25 494

原创 算法:有效的括号

leetcode 有效的括号给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。代码:bool isValid(char * s){ char * c = malloc(sizeof(char) * 10001); memset(c, 0, 10001); int head = 1; for (int i = 0; i <

2022-03-15 21:16:54 117

原创 算法:三角形的最大周长

leetcode 三角形的最大周长给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。如果不能形成任何面积不为零的三角形,返回 0。代码:void quiksort(int *nums, int start, int end) { if (start < end) { int left = start, right = end; int tmp = nums[start]; wh

2022-03-15 20:47:38 360

原创 算法:从尾到头打印链表

leetcode 从尾到头打印链表从尾到头,不是从头到尾,这里主要问题是:要求返回一个数组,一是长度不好确定,只有遍历完这个链表,才能确定其长度。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; *//** * Note: The returned array must be malloced, assu

2022-03-15 19:12:42 159

原创 算法:位1的个数、整数的各位积和之差

简单的记录一下1. 位1的个数leetcode 位1的个数代码:int hammingWeight(uint32_t n) { int count = 0; for (int i = 0; i < 32; i++) { if (n & (1u << i)) { count++; } } return count;}结果:2. 整数的各位积和之差leetcode 整数的各位积

2022-03-14 21:31:33 289

原创 算法:夏季特惠

leetcode 夏季特惠某公司游戏平台的夏季特惠开始了,你决定入手一些游戏。现在你一共有X元的预算,该平台上所有的 n 个游戏均有折扣,标号为 iii 的游戏的原价 aia_iai​元,现价只要 bib_ibi​ 元(也就是说该游戏可以优惠 ai−bia_i - b_iai​−bi​元)并且你购买该游戏能获得快乐值为 wiw_iwi​。由于优惠的存在,你可能做出一些冲动消费导致最终买游戏的总费用超过预算,但只要满足获得的总优惠金额不低于超过预算的总金额,那在心理上就不会觉得吃亏。现在你希望在心理上不觉

2022-03-13 21:19:01 5847

原创 算法:螺旋矩阵

leetcode 螺旋矩阵顺时针螺旋的顺序读取矩阵中的元素。代码:/** * Note: The returned array must be malloced, assume caller calls free(). */int* spiralOrder(int** matrix, int matrixSize, int* matrixColSize, int* returnSize){ int *result = malloc(sizeof(int) * (matrixSize

2022-03-13 20:34:36 387

原创 算法:搜索旋转排序数组

leetcode 搜索旋转排序数组整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转

2022-03-13 20:06:26 46

原创 算法:二叉树的右视图

leetcode 二叉树的右视图二叉树一个基本的数据结构,在其使用中可能会牵扯到栈或队列的使用。给定一个二叉树,只输出其从右侧看到的节点的值,且从上往下遍历。代码:/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(i

2022-03-11 21:08:40 506

原创 算法:反转链表

leetcode反转链表其题目意思较为简单,就是将链表中节点的顺序进行反转,第一个节点变为最后一个节点,最后一个节点变为第一个节点代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseList(struct ListNode* head){ // st

2022-03-11 20:34:16 149

原创 算法:字符串压缩

leetcode 字符串压缩将字符串中的多个连续单词,只记录其数目。但是压缩后的字符串没有变短,仍然返回原先的字符串。代码:class Solution { public String compressString(String S) { char[] ss = S.toCharArray(); String s = ""; for (int i = 0; i < ss.length;) { char c = s

2022-03-11 20:14:16 1185

原创 高效研发流程

一、从产品目标到产品路线图满足用户诉求是产品的基础职能二、从产品路线图到发布图1、用户故事地图增强团队协作洞察真实需求打磨优良产品用户故事地图的常见步骤一步一步写出你的故事组织情节探索替代故事提取故事地图的主干切分出能够帮你达成特定目标的任务细节、替代、变化和异常构成故事地图的主题。2、制定发布计划Big Story 进行细化讨论按照价值和重要程度进行版本规划确定每个版本的期望达成目标确定每个版本的内容团队达成共识三、从发布计划到迭代计划1、

2022-03-09 17:17:17 141

原创 设计方法与实践介绍

一、软件设计原则软件设计是为了使软件在长期范围能够容易地进行变化。基本原则:高内聚、低耦合二、clean code1、概念整洁代码写的代码能够在尽可能短的时间内被别人读懂2、命名规则表达它是什么代码要做到自注释使用有意义地循坏迭代变量避免缩写,尤其使拼音缩写不要使用非约定熟成地缩写避免使用魔法数不要害怕使用长变量3、注释好的注释:版权信息、涉及意图、警示信息不好的注释:同义反复、隐晦关联关系、套用模板、提供历史修改记录、注释掉的代码4、函数每个函数只做一件事、每个函

2022-03-09 16:55:03 188

原创 安装 nc、Flume 以及测试 Flume

安装Flume解压文件tar -zvxf apache-flume-1.9.0-bin.tar.gz -C ../pkg/修改文件名 mv apache-flume-1.9.0-bin/ flume-1.9.0配置环境变量sudo vi /etc/profile.d/env.sh添加如下配置# Flumeexport FLUME_HOME=/opt/pkg/flume-1.9.0export PATH=$FLUME_HOME/bin:$PATH执行

2022-03-09 15:58:22 178

原创 Discuz 服务器重启后无法访问

Disucz 是腾讯子公司旗下的一个通用的社区论坛软件系统。其基础架构是由PHP+MySQ实现的。其运行需要三个服务才能正常启动:MySQLPHP-fpmWeb 服务MySQLMySQL用来存储数据,是一个关系型数据管理系统,是Oracle 旗下的产品。PHP-fpm一个进程管理器,详细的未了解Web 服务三个常用的Web 服务:nginx、apache server 、tomcat。nginx 不能直接运行 Java Web 项目,如需运行 Java Web 项目,其常常与 t

2022-03-09 08:13:53 3311

原创 算法:K个一组翻转链表

leetcode K个一组翻转链表翻转链表,不像翻转字符串和数组,字符串和数组的值可以直接访问代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseKGroup(struct ListNode* head, int k){ int * tmp;

2022-03-08 22:32:25 82

原创 算法:反转字符串Ⅲ

leetcode 反转字符串Ⅲ反转每个单词,首先第一步就是要提取出每个单词;然后调换单词代码:char * reverseWords(char * s){ int start = -1; int end = -1; int tag = 0; int len = strlen(s); for (int i = 0; i < len; i++) { if (s[i] != ' ' && tag == 0) {

2022-03-07 20:52:40 46

原创 算法:字符串转换整数(atoi)

leetcode 字符串转换整数(atoi)主要提取字符串的的数字,但是它的要求比较多:第一个数字前面只能出现多个空格、一个“+”或或一个“-”,否则就返回0如果一串数字中间插入了其他符号,也舍弃后面,包括小数点int 范围问题代码:int myAtoi(char * s){ long result = 0; int len = strlen(s); int status = 1; int start = -1; for (int i = 0; i

2022-03-06 20:41:42 210

原创 算法:删除链表中的重复元素Ⅱ

leetcode 删除链表中的重复元素Ⅱ一个已排序的链表,简化了操作,从头指针开始遍历,只需要判断后面的节点的值是否相等即可。需要维护三个节点,出现相等时的前一个节点,以及结束相等的情况。不要纠结于用节点的值去做比较,而是要保存这个值进行比较,就可以少维护一个节点。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }

2022-03-05 10:21:14 182

原创 算法:二叉搜索树的第k大节点

leetcode 二叉搜索树的第k大节点首先,它是一个搜索二叉树,对于每一个根节点,总是满足,左节点比它小,右节点比它大。我的方法是,中序遍历树“右、根、左”,从而得到树的节点值的降序排列。其第k大节点的值即为遍历得到的数组的第k个值代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNod

2022-03-04 12:38:13 220

原创 算法:编辑距离

leetcode 编辑距离使用动态规划的方法:两个字符A和B,分别分析其第i个、第j个字符。tmp[i][j]表示A的前i个字符转换到B的前j个字符的最少操作数。当两个字符相等时:(1)A的第i-1个字符与B的第j-1个字符也是相等的,这时tmp[i][j]=tmp[i-1][j-1](2)A的第i-1个字符与B的第j-1个字符是不相等的,则需要修改字符,可能是tmp[i-1][j]+1也可能是tmp[i][j-1]+1,选取一个最小值当两个字符不相等时:则其只能是修改,可能是tm

2022-03-03 16:49:55 70

原创 算法:整数拆分

343. 整数拆分 - 力扣(LeetCode) (leetcode-cn.com)使用动态规划:在我看来,动态规划的核心是利用之前计算的结果,而不用重新计算。此题中,当输入n为正整数,所以不用考虑0;当n为1时,输出就为1。当n为2时,可以从1遍历到2(不包含2)(从0开始就没意义了,他肯定是最小的),2=1+1,输出1*1…判断 1~(i-1)→\rightarrow→ j,利用一个数组tmp[n+1]记录前面计算的结果,也是保存其最大值比较 j*(i-j)和j*tmp[i-j]的大小

2022-03-02 17:33:03 341

first.html

这是我自己写的一个小Demo,关于HTML5入门简单知识,当然,也有一些局限性,因为我也是刚入门哦,欢迎指出错误

2020-08-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除