剑指offer计划24( 数学中等)—java

1.1、题目1

剑指 Offer 14- I. 剪绳子

1.2、解法

这几天的题都不在行。。。。

1.3、代码

class Solution {
    public int cuttingRope(int n) {
        int[] dp = new int[n + 1];
        dp[2] = 1;
        for(int i = 3; i < n + 1; i++){
            for(int j = 2; j < i; j++){
                dp[i] = Math.max(dp[i], Math.max(j * (i - j), j * dp[i - j]));
            }
        }
        return dp[n];
    }
}

2.1、题目2

剑指 Offer 57 – II. 和为s的连续正数序列

2.2、解法

这题返回数组就离谱,为啥不能返回list。。。。。暴力枚举没啥好说的。

2.3、代码

class Solution {
    public int[][] findContinuousSequence(int target) {
        List vec = new ArrayList();
        int sum = 0, limit = (target - 1) / 2; // (target - 1) / 2 等效于 target / 2 下取整
        for (int i = 1; i  target) {
                    sum = 0;
                    break;
                } else if (sum == target) {
                    int[] res = new int[j - i + 1];
                    for (int k = i; k

3.1、题目3

剑指 Offer 62. 圆圈中最后剩下的数字

3.2、解法

这题居然是简单题,约瑟夫环,表示看题解的。。。。。。
还用上了动态规划。。。。。。
最后只剩下一个元素,假设这个最后存活的元素为 num, 这个元素最终的的下标一定是0 (因为最后只剩这一个元素),
所以如果我们可以推出上一轮次中这个num的下标,然后根据上一轮num的下标推断出上上一轮num的下标,
直到推断出元素个数为n的那一轮num的下标,那我们就可以根据这个下标获取到最终的元素了。推断过程如下:
首先最后一轮中num的下标一定是0, 这个是已知的。
那上一轮应该是有两个元素,此轮次中 num 的下标为 (0 + m)%n = (0+3)%2 = 1; 说明这一轮删除之前num的下标为1;
再上一轮应该有3个元素,此轮次中 num 的下标为 (1+3)%3 = 1;说明这一轮某元素被删除之前num的下标为1;
再上一轮应该有4个元素,此轮次中 num 的下标为 (1+3)%4 = 0;说明这一轮某元素被删除之前num的下标为0;
再上一轮应该有5个元素,此轮次中 num 的下标为 (0+3)%5 = 3;说明这一轮某元素被删除之前num的下标为3;
….

因为我们要删除的序列为0-n-1, 所以求得下标其实就是求得了最终的结果。比如当n 为5的时候,num的初始下标为3,
所以num就是3,也就是说从0-n-1的序列中, 经过n-1轮的淘汰,3这个元素最终存活下来了,也是最终的结果。

总结一下推导公式:(此轮过后的num下标 + m) % 上轮元素个数 = 上轮num的下标
至于为什么从2开始,你从1开始结果也是一样的。

3.3、代码

class Solution {
    public int lastRemaining(int n, int m) {
        int ans = 0;
        // 最后一轮剩下2个人,所以从2开始反推
        for (int i = 2; i

Original: https://www.cnblogs.com/cxykhaos/p/15328705.html
Author: 程序员khaos
Title: 剑指offer计划24( 数学中等)—java

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/714702/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 关于sparksql调优的一些操作

    1、查看执行计划1、直接sql查看: explain select … from … 2、ds.explain()2、执行计划的处理流程sql代码 -&gt…

    技术杂谈 2023年7月25日
    088
  • UML图

    依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类…

    技术杂谈 2023年5月31日
    089
  • 深入SaltStack

    [译者注] 这是一篇发表在opencredo官网的博文,通过比较流行的Puppet和新发展起来的Salt,详细地介绍了Salt的功能。在征得原作者的同意后,翻译出来,与大家分享。初…

    技术杂谈 2023年5月31日
    095
  • 【转】Controller以及View的几种创建方式

    Xib是storyboard的前身,使用storyboard的好处是可以建立起界面跳转的关系,看起来更加直观。 可能报错的地方: 产生原因:在xib文件中没有进行任何操作。解决方法…

    技术杂谈 2023年6月1日
    089
  • styleBinding属性详解

    属性 值 说明 width 默认值-1 -1:充满父元素的剩余宽度,即 父元素width – 父元素的paddingLeft – 父元素的paddingRi…

    技术杂谈 2023年6月1日
    074
  • Nginx 开源版编译安装教程

    本文示例在虚拟机 Rocky Linux 8.5 系统中编译安装 Nginx 开源版软件。 关于虚拟机 Rocky Linux 8.5 系统的安装配置教程可参考这篇文章:VMwar…

    技术杂谈 2023年7月11日
    083
  • WPS word文档中所有图片批量居中对齐

    WPS word文档中所有图片批量居中对齐 ctrl+F 调出 查找和替换 对话框 看图操作 posted @2022-06-06 12:18 行走的思想 阅读(776 ) 评论(…

    技术杂谈 2023年5月31日
    0248
  • Css Div等比例缩放整理(一)

    一、CSS Div等比例缩放 1 百分比+fixed;占据屏幕的固定比例 DOCTYPE html> <html lang="en"> &lt…

    技术杂谈 2023年6月1日
    0117
  • 浅谈自动化测试框架开发

    在自动化测试项目中,为了实现更多功能,我们需要引入不同的 &#x5E93;&#x3001;&#x6846;&#x67B6;。 首先,你需要将常用的这…

    技术杂谈 2023年5月31日
    089
  • 深入C++03:面向对象

    📕面向对象 类和对象、this指针 不用做太多笔记,都可以看初识C++的笔记; 记住👀:声明后面都要加” &#xFF1B;“,比如声明方法和变量还有…

    技术杂谈 2023年7月25日
    073
  • Python 内置函数简单介绍

    int():函数用于将一个字符串或数字转换为整型,可以用于取整。float:函数用于将整数和字符串转换成浮点数。complex:函数用于创建一个值为 real + imag * j…

    技术杂谈 2023年6月21日
    098
  • 高颜值测试报告- XTestRunner

    Modern style test report based on unittest framework. 基于unittest框架现代风格测试报告。 特点 漂亮测试报告让你更愿意…

    技术杂谈 2023年5月31日
    086
  • 逻辑学

    最近跟我朋友小黑分享逻辑学,所以就跟小黑一起写了这篇文章 逻辑是什么 维基上说”有效推论和证明的原则与标准” 但是什么是有效的?这个我不太认同,我认为是逻辑…

    技术杂谈 2023年6月21日
    0102
  • Spring

    一、Spring SSH:Struct2 + Spring + Hibernate SSM:SpringMVC + Spring + MyBatis! 配置文件 org.sprin…

    技术杂谈 2023年6月21日
    0101
  • 【HMS Core】【FAQ】运动健康、音频编辑、华为帐号服务 典型问题合集7

    【HMS Core-音频编辑服务】【问题描述】音频编辑UI SDK在音频编辑时删除开头一段时长后会留下一段空白无声音时长解决方案:音频编辑SDK是支持多音轨编辑的。当用户对某条音轨…

    技术杂谈 2023年5月31日
    093
  • 一图看懂:信号的时域、频域、相位

    值得说明的是相位谱: 如下两图,相位谱是从上往下看,距离穿过时间0点的频率轴最近的波峰(红点),投影到下平面(投影点用粉点表示),将投影得到的时间差依次除以所在频率的周期,再乘以2…

    技术杂谈 2023年5月31日
    0131
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球