
算法
文章平均质量分 55
Nydia~
我太难了!
展开
-
【算法】滑动窗口
使用说明 输入是一个数组或字符串,求解的结果是具有某种特质的子数组或者子字符串。 可以用两个指针标识窗口的边界。 窗口的长度是固定的,也可以是可变的。 维护一个或者一组和窗口相关联的状态变量,减少while循环,能有效降低计算量和算法复杂度。 数组定长问题 leetcode209.长度最小的子数组 ...原创 2023-01-05 22:19:49 · 165 阅读 · 0 评论 -
【leetcode】413等差数列划分——计数型
题目 如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。 例如,以下数列为等差数列: 1, 3, 5, 7, 9 7, 7, 7, 7 3, -1, -5, -9 以下数列不是等差数列。 1, 1, 2, 5, 7 数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。 如果满足以下条件,则称子数组(P, Q)为等差数组: 元素 A[P], A[p + 1], …, A[Q -原创 2021-04-11 03:51:57 · 189 阅读 · 0 评论 -
【leetcode】198打家劫舍——求最大最小值型
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例 1: 输入:[1,2,3,1] 输出:4 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。 示例 2: 输入:[2,7,9原创 2021-04-11 03:12:39 · 147 阅读 · 0 评论 -
【leetcode】70.爬楼梯——计数型
爬楼梯题目题解1.递归2.记忆化递归3.动态规划 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1 阶 + 1 阶 2 阶 示例 2: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 + 1 阶 来源:力扣(LeetCode) 链接:http原创 2021-04-11 02:14:12 · 359 阅读 · 0 评论 -
动态规划
动态规划1.题目特点1.1计数1.2求最大最小值1.3求存在性2.组成部分2.1确定状态2.2转移方程2.3初始条件和边界情况2.4运算顺序3常见题型4优化5打印路径 1.题目特点 1.1计数 1.2求最大最小值 1.3求存在性 2.组成部分 2.1确定状态 动态规划需要开一个数组,需要确定数组每个元素的意义——相当于数学问题中确定X,Y,Z的含义 关键点: 最后一步 子问题 此步骤也可以用递归做,但递归重复计算,效率低下,为了避免这种情况,我们存储已经运算的结果并改变运算顺序 2.2转移方程 eg l原创 2021-04-10 18:04:36 · 80 阅读 · 0 评论 -
【leetcode】167.两数求和
文章目录题目解析方法一.双指针算法代码方法二.二分查找代码 题目 给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。 函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 1 开始计数 ,所以答案数组应当满足 1 <= answer[0] < answer[1] <= numbers.length 。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例 1: 输入原创 2021-03-19 09:11:51 · 198 阅读 · 0 评论 -
【leetcode】605.种花问题
文章目录题目代码 题目 假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。 示例 1: 输入:flowerbed = [1,0,0,0,1], n = 1 输出:true 示例 2: 输入:flowerbed =原创 2021-03-15 17:04:54 · 155 阅读 · 0 评论 -
C语言实现常见递归算法
C语言实现常见递归算法1.N皇后问题 1.N皇后问题 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stdbool.h> /*======================N皇后问题========================*/ #define N 100 int q[N];//列坐标 //输出原创 2020-06-29 23:38:42 · 951 阅读 · 0 评论 -
【Java】+【LD算法】实现代码相似性比较
【Java】+【LD算法】实现代码相似性比较一.前言1.编程题自动判分技术分析2.LD算法简介二. 分析三.代码 一.前言 1.编程题自动判分技术分析 最近在做一个C语言程序设计在线考试平台,要求编程题可自动判分。通过查询资料文献了解到,目前主要有以下三种编程自动判分方法: ①. 根据静态结果文件进行判分[1],判分系统通过比较考生提供的结果文件和预先准备的标准结果文件的内容进行评判; ②通过动态执行程序进行判分,判分系统动态编译考生提交的程序,并按照一定的测试用例动态执行程序,通过比较程序运行返回的结果和原创 2020-05-27 12:10:55 · 2006 阅读 · 1 评论