自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 递归建立二叉树

#include<iostream>using namespace std;struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} TreeNode(int x, TreeNode* lef.

2021-07-29 23:17:18 93 2

原创 Leetcode509. 斐波那契数

斐波那契数,通常用F(n) 表示,形成的序列称为 斐波那契数列 。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你 n ,请计算 F(n) 。int fib(int n) { if (n == 0) return 0; if (n == 1) return 1; return fib(n - 1) + fib(n - 2);}...

2021-05-11 23:14:41 65

原创 Leetcode88. 合并两个有序数组

给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1 的空间大小等于m + n,这样它就有足够的空间保存来自 nums2 的元素。void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) { nums1Size = m + n; ...

2021-05-11 23:12:43 63

原创 剑指 Offer 03. 数组中重复的数字

找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。int findRepeatNumber(int* nums, int numsSize) { int a[100000] = { 0 }; int res = 0; for (int i = 0; i < numsSize; i++) { a[nums[i]]++;

2021-05-11 22:27:51 48

原创 剑指 Offer 10- II. 青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。int numWays(int n) { int dp[101] = { 0 }; dp[0] = 1; dp[1] = 1; dp[2] = 2; for (int i = 3; i <= n; i++) { dp[i] = (dp[i - 1] + dp[i - 2]) % 1.

2021-05-11 17:16:29 47

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

给定一个数组 prices ,其中prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。int a[30000] = { 0 };int maxProfit(int* prices, int pricesSize) { int profit = 0; for (int i = 0; i < pricesSize - 1; i+.

2021-05-11 17:01:33 47

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

给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。int maxProfit(int* prices, int pricesSize) { int minbuy = 10000, profit = 0; for (int i = 0; i &lt..

2021-05-11 16:49:52 48

原创 Leetcode13. 罗马数字转整数

罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。通常...

2021-05-11 13:42:24 42

原创 Leetcode118. 杨辉三角

给定一个非负整数numRows,生成杨辉三角的前numRows行。在杨辉三角中,每个数是它左上方和右上方的数的和。int** generate(int numRows, int* returnSize, int** returnColumnSizes) { *returnSize = 0; int** a = (int**)malloc(sizeof(int*) * numRows); (*returnColumnSizes)= (int*)malloc(sizeof(int) * n...

2021-03-26 13:39:06 45

原创 Leetcode26. 删除有序数组中的重复项

给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。int removeDuplicates(int* nums, int numsSize) { if (numsSize == 0) { return 0; } else if (numsSize == 1) { return 1; } int i = 0, j = 1, i

2021-03-26 09:56:56 48

原创 Leetcode53. 最大子序和

给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。int a[30000] = { 0 };int max(int a, int b) { if (a >= b) { return a; } else return b;}int maxSubArray(int* nums, int numsSize) { a[0] = nums[0]; for (int i = 1; i < numsSize; i++) { ..

2021-03-25 22:45:11 47

原创 Leetcode7. 整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−231,231− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。int reverse(int x){ int flag = 0; if (x == 0) { return 0; } else if (x == -2147483648) return 0; else if (x < 0) { x = -x;...

2021-03-25 22:01:45 45

原创 Leetcode62. 不同路径

一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?int uniquePaths(int m, int n){ int a[100][100] = { 0 }; for (int i = 0; i < m; i++) { a[i][0] = 1; } for (int j = 0; j < n; j++).

2021-03-22 22:39:29 48

原创 Leetcode101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */bool Symmetric(struct TreeNode* left, struct TreeNode* right) { if (left == NU

2021-03-22 22:28:18 50

原创 Leetcode155. 最小栈

设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。typedef struct { int *data; int top;} MinStack;/** initialize your data structure here. */MinStack* minStackCreate() { MinStack* m = (MinStack*)malloc(sizeof(MinStack)); m->data = (int*)malloc(sizeo...

2021-03-22 22:07:34 44

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

将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){ struct L...

2021-03-22 20:39:17 57

原创 Leetcode35. 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。int searchInsert(int* nums, int numsSize, int target){ int flag; for (int i = 0; i < numsSize; i++) { if (nums[i] >= target) { flag = i; break; } } return

2021-03-22 19:56:02 41

原创 Leetcode125. 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。bool isPalindrome(char * s){ int i = 0, j = strlen(s) - 1; while (i < j) { if (s[i] >= 'A' && s[i] <= 'Z') { s[i] += 32; } if (s[j] >= 'A' && s[j] &

2021-03-22 19:49:28 46

原创 Leetcode169. 多数元素

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。intmajorityElement(int*nums,intnumsSize){intflag,pos;flag=nums[0];intnum=1;for(inti=1;i<numsSize;i++){if(nums[i]==...

2021-03-22 19:12:56 52

原创 Leetcode268. 丢失的数字

给定一个包含[0, n]中n个数的数组nums,找出[0, n]这个范围内没有出现在数组中的那个数。int missingNumber(int* nums, int numsSize){ int a[10000] = {0}; int flag; for (int i = 0; i < numsSize; i++) { a[nums[i]]++; } for (int j = 0; j <= numsSize; j++) { if (a[j] ...

2021-03-22 18:02:10 94

原创 Leetcode1. 两数之和

给定一个整数数组 nums和一个整数目标值 target,请你在该数组中找出 和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target, int...

2021-03-22 17:54:05 35

原创 Leetcode190. 颠倒二进制位

颠倒给定的 32 位无符号整数的二进制位。#include<stdio.h>#include<stdint.h>#include<math.h>uint32_t reverseBits(uint32_t n) { uint32_t m = 0; for (int i = 0; i < 32; i++) { m = m + (n % 2) * pow(2, 31 - i); n /= 2; } return m;}int main(

2021-03-22 17:00:29 78

空空如也

空空如也

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

TA关注的人

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