彼之此间 2022-07-17 11:15 采纳率: 33.3%
浏览 35
已结题

关于#算法#的问题,如何解决?

基于遗传算法的工序顺序柔性车间调度代码,关键是工序顺序柔性的问题(使用matlab进行实现)

  • 写回答

1条回答 默认 最新

  • 雷威工作室 2022-07-17 13:01
    关注

    一、方法论
    先解决问题,然后再去优化,或者别的复杂度更低的方法。比如,遇到一些题,可以先使用常规方法,比如暴力破解之类的笨办法,先保证实现,这样心态会更好一点,利于找到更优的方法。
    注意一些关键词,尤其是对一些限定敏感(数字),既然出现这些限定输入形式的关键词,说明这些是高效解法的突破口,比如
    有序、只出现两次、
    对于在字符串、数组之类的数据结构,寻找诸如“最大”、“最短”等的目标,可以考虑到双指针的方法,诸如快慢指针、滑动窗口,双指针只是比较常用,甚至有些需要三指针甚至更多的指针。
    多练习,多看优秀的题解,总结套路,慢慢就熟了。
    leetcode 官方题解真是精华,讲述了多种方法,让人耳目一新,如果要提高,一定要多看看。当然一些大佬写的题解也很精彩。我觉得光刷题过了就行的做法成长不是很快,多看看优秀的题解才能进步更快,也能开阔眼界。
    理解递归确实是很伤脑筋的事情,大方向是,其实是和迭代相反的方向,递归先“递”到末尾,然后从末尾开始计算,然后想办法“归回来”。
    二、具体实践
    2.1、双指针
    又称为快慢指针,快慢指针在很多算法题会使用,大多是给一个数组或者字符串,找到符合特定规则的子序列。
    另外也有滑动窗口的用法,其实也是使用双指针的方法,利用左右指针有规则的滑动,从而获取满足条件的值。

    以下是 leetcode 对应的题目:

    75、Sort Colors
    167、两数之和 II - 输入有序数组
    209.、长度最小的子数组
    344、反转字符串
    80、删除有序数组中的重复项 II
    2.2、字母相关(字符串等)
    遇到字母的问题要想到利用字母也是数字的本质,结合数组随机访问的优秀特点,建立一个256的数组大小,可以很方便的得到该字母之前的情况(比如判断是否出现过),时间复杂度只有O(1),秒杀普通的循环遍历比较。

    以下是 leetcode 对应的题目:

    3、无重复字符的最长子串
    2.3、利用哨兵简化问题
    哨兵节点广泛应用于树和链表中,如伪头、伪尾、标记等,它们是纯功能的,通常不保存任何数据,其主要目的是使链表标准化,如使链表永不为空、永不无头、简化插入和删除。
    作者:LeetCode
    链接:https://leetcode-cn.com/problems/remove-linked-list-elements/solution/yi-chu-lian-biao-yuan-su-by-leetcode/
    来源:力扣(LeetCode)

    在一些问题中,对于边界的处理往往需要特定的处理方法,比如链表的头尾节点的处理,这时候加入额外的节点去充当边界,就能够简化处理的细节。

    203、 移除链表元素
    206、 反转链表
    2.4、链表的使用
    其实链表就那点东西:指向下一个节点的指针和当前值(这里主要指的是单链表),最重要的是不要在指针切换的时候,把链路搞断了,然后就乱了。
    还是多练习,就会熟练了,没有别的方法。

    2、两数相加
    2.5、位运算
    掌握一些位运算的技巧,能够让很多题目得到很简单的做法。
    总结于此:位运算的一些常用技巧总结

    461、 汉明距离(注:汉明距离广泛应用于多个领域。在编码理论中用于错误检测,在信息论中量化字符串之间的差异)

    评论

报告相同问题?

问题事件

  • 系统已结题 7月25日
  • 修改了问题 7月17日
  • 创建了问题 7月17日

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比