自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 238. 除自身以外数组的乘积

给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 进阶: 你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组...

2020-01-11 09:09:30 170

原创 617. 合并二叉树

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点 /** Definition for a binary tree node. struct TreeNode { int val; TreeNod...

2020-01-10 14:59:11 142

原创 (复制可用)数据结构之二叉树的创建、前序、中序后续遍历

#include “queue” #include “stack” #include “vector” #include using namespace std; #include #include using namespace std; class BiNode { public: char data; struct BiNode *lchild, *rchild; }; class BiT...

2020-01-10 09:32:02 268

原创 53. 最大子序和(未完)

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。 int maxSubArray(int* nums, int numsSi...

2019-12-25 10:27:11 153

原创 198.打家劫舍(动态规划)

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例 1: 输入: [1,2,3,1] 输出: 4 解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号...

2019-12-24 16:54:34 105

原创 191. 位1的个数(与操作和翻转1的技巧)

编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 1.cout+=最后一位&1 时间复杂度:O(1)O(1) 。运行时间依赖于数字 nn 的位数。由于这题中 nn 是一个 32 位数,所以运行时间是 O(1)O(1) 的。 空间复杂度:O(1)O(1)。没有使用额外空间。 int hammingWeight(uint32_t n) {...

2019-12-19 14:52:24 228

原创 70. 爬楼梯(动态规划)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 方法: 第 ii 阶可以由以下两种方法得到: 在第 (i-1)(i−1) 阶后向上爬一阶。 在第 (i-2)(i−2) 阶后向上爬 22 阶。 所以f(x)=f(x-1)+f(x-2) ****用数组保存f(1)、f(2)…f(x-1)、f(x-2...

2019-12-19 10:52:01 140

原创 121. 买卖股票的最佳时机

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是...

2019-12-19 08:42:06 112

原创 448. 找到所有数组中消失的数字

//标记法:有的数字对应数组的下表做标记 /** Note: The returned array must be malloced, assume caller calls free(). / int findDisappearedNumbers(int* nums, int numsSize, int* returnSize){ int index,p=0; if(nums==NULL) r...

2019-12-17 15:50:22 147

原创 283.移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 说明: 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/move-zeroes 著作权归领扣网络所有。商业转载...

2019-12-17 14:05:11 100

原创 21.合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists 著作权归领扣网...

2019-12-17 13:26:59 126

原创 141.环形链表

/** Definition for singly-linked list. struct ListNode { int val; struct ListNode *next; }; / bool hasCycle(struct ListNode head) { struct ListNodequick; struct ListNodelow; quick=head; low=hea...

2019-12-17 11:27:23 112

原创 1链表

#include using namespace std; //单链表 struct Node { int data; struct Nodenext; }; //创建头节点 struct NodecreateList() { struct Node headNode = (struct Node )malloc(sizeof(struct Node)); //headNode->data ...

2019-11-23 19:48:24 146

原创 169. 求众数

暴力: int majorityElement(int* nums, int numsSize) { int i, j,count=0; for (i = 0; i < numsSize; i++) { count = 0; for (j = 0; j < numsSize; j++) { if (nums[i] == nums[j]) count++; if (coun...

2019-11-16 09:58:51 142

原创 4. 136. 只出现一次的数字

int singleNumber(int* nums, int numsSize) { int i = 0, j = 0; for (; i < numsSize; i++) { for ( j=0; j < numsSize; j++) { if ((nums[i] == nums[j])&&(i!=j)) break; if (j == (numsSize - 1)...

2019-11-15 16:24:51 96

原创 3. 461. 汉明距离

#include"stdio.h" int hammingDistance(int x, int y) { int xor_number = x ^ y; int count = 0; while (xor_number > 0) { count += xor_number & 1; xor_number = xor_number >> 1; } return count...

2019-11-15 15:41:04 109

原创 交换a,b

a=a^b; b=a^b; a=a^b;

2019-11-15 15:38:16 205

原创 2. 383. 赎金信

给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。 (题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。) 注意: 你可以假设两个字符串均只含有小写字母。 canConstruct(“a”, “b”) -...

2019-11-08 11:40:51 100

原创 1.LeetCode宝石与石头(简单)

给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。 示例 1: 输入: J = “aA”, S = “aAAbbbb” 输出: 3 示例 2: 输入: J = “z”, S = “ZZ” 输出: ...

2019-11-08 09:32:57 234

原创 4.swich注意事项

swich(整型) // 括号内必须为整型; case 整型: ; break; //break一般不省略,若省略则会执行下去(包括default) default :;(可以省略) 在使用switch语句时还应注意以下几点: 在case后的各常量表达式的值不能相同,否则会出现错误。 在case后,允许有多个语句,可以不用{}括起来。 各case和default子句的先后顺序可以变动,而不会影...

2019-11-07 10:55:03 405

原创 3.float存储

float由4个Bit组成 Sign(1bit):表示浮点数是正数还是负数。0表示正数,1表示负数 Exponent(8bits):指数部分。类似于科学技术法中的M*10N中的N,只不过这里是以2为底数而不是10。需要注意的是,这部分中是以27-1即127,也即01111111代表2^0,转换时需要根据127作偏移调整。 Mantissa(23bits):基数部分。浮点数具体数值的实际表示。 ht...

2019-11-07 10:17:16 134

原创 2.无符号数

char a;默认为有符号数,即最高位为符号位:负数为1,正数为0 嵌入式中需要用到无符号数 unsigned char 若是有符号数,在位移的过程中会出现问题

2019-11-07 10:09:09 270

原创 1.宏中#和##

定义 “#”是将宏字符串化(Stringification),“##”是将##左右两边的标签拼接在一起(## is called token concatenation, used to concatenate two tokens in a macro invocation) 例子 看一段代码 #include<stdio.h> #define f(a,b) a##b #define...

2019-11-07 09:53:37 157

原创 static关键词要点

1.static全局变量:作用域:单个文件 生存周期:从变量定义开始到程序结束 存储:全局变量区 作用:不让其他文件调用(即不同文件可以定义同名变量) 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。   全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。   这两者的区别在于非静态全局变量的作用域是整个源程序, 当一个源程序...

2019-11-05 14:55:04 106

原创 2.单片机flash操作注意事项

1.在flash擦写的时候需要关闭中断,不然会出现不可预料的现象 char a=__get_PRIMASK();//获取是否开启中断 __disable_irq(); //关闭中断 ////////////////////// if(a) __disable_irq(); else __enable_irq(); 2.创建备份区降低擦写时掉电数据丢失的风险...

2019-10-31 16:38:59 1151

原创 c语言

1.数组指针加一(a+1与&a+1) int main(void) { int a[5]={1,2,3,4,5}; int ptr=(int )(&a+1); printf(“%d,%d”,(a+1),(ptr-1)); return 0; } 输出结果为2,5 &a指代整个数组,&a+1的值是数组末位加一;而a+1则指首位地址加一。 ...

2019-10-31 08:25:50 183 1

空空如也

空空如也

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

TA关注的人

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