博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode 303. 区域和检索 - 数组不可变(DAY 25) ---- 动态规划学习期
阅读量:1994 次
发布时间:2019-04-27

本文共 1544 字,大约阅读时间需要 5 分钟。

原题题目

在这里插入图片描述



代码实现(首刷自解 暴力解法)

typedef struct {
int size; int* arr;} NumArray;NumArray* numArrayCreate(int* nums, int numsSize) {
NumArray* obj = (NumArray*)malloc(sizeof(NumArray)); obj->size = numsSize; obj->arr = (int*)malloc(sizeof(int) * numsSize); memcpy(obj->arr,nums,sizeof(int) * numsSize); return obj;}int numArraySumRange(NumArray* obj, int i, int j) {
int temp,count = 0; for(temp = i;temp <= j;temp++) count+=obj->arr[temp]; return count;}void numArrayFree(NumArray* obj) {
free(obj);}/** * Your NumArray struct will be instantiated and called as such: * NumArray* obj = numArrayCreate(nums, numsSize); * int param_1 = numArraySumRange(obj, i, j); * numArrayFree(obj);*/


代码实现(首刷自解 改进版)

typedef struct {
int size; int* arr;} NumArray;NumArray* numArrayCreate(int* nums, int numsSize) {
NumArray* obj = (NumArray*)malloc(sizeof(NumArray)); obj->size = numsSize; obj->arr = (int*)malloc(sizeof(int) * numsSize); int i; for(i=0;i
arr[i] = nums[i]; else obj->arr[i] = obj->arr[i-1]+nums[i]; } return obj;}int numArraySumRange(NumArray* obj, int i, int j) {
int temp,count = 0; if(i) count = obj->arr[j] - obj->arr[i-1]; else count = obj->arr[j]; return count;}void numArrayFree(NumArray* obj) {
free(obj);}/** * Your NumArray struct will be instantiated and called as such: * NumArray* obj = numArrayCreate(nums, numsSize); * int param_1 = numArraySumRange(obj, i, j); * numArrayFree(obj);*/

转载地址:http://hwqvf.baihongyu.com/

你可能感兴趣的文章