JSRUN 用代码说话
精选js
全部js
Wonderland(使用dp数组记录到每天为止的最小花费 dp[i]表示到第i天为止的最小花费 // 初始值都设为0 // 状态转移: // 对于每个需要出行的日期: // 计算四种购买方案的花费 // 选择花费最小的方案 // 对于不需要出行的日期: // 保持前一天的花费不变 // 购买方案: // 买1天通行证:dp[i-1] + costs[0] // 买3天通行证:dp[i-3] + costs[1](如果天数足够) // 买7天通行证:dp[i-7] + costs[2](如果天数足够) // 买30天通行证:dp[i-30] + costs[3](如果天数足够) // 结果输出: // 输出最后一天的最小花费)


【书籍叠放】(最大连续递增子序列:动态规划,先将原数组按降序(或升序)排列,然后定义dp数组,初始值为1(当前数组就是最大),双循环数组,每当arr[j][1]>arr[i][1]时,判断当前dp[i]与dp[j]+1的大小,取最大值。最后输出dp数组的最大值)


最优资源分配(找每个资源中0的位置,简单题)


寻找最优的路测线路(bfs:bfs时对四个方向分别进行计算,每一次都采用最大的值,当dx,dy==row-1,tate-1时,停止bfs搜索。将搜索结果放置在数组中,找到数组中的最小值)


【运输时间】(逻辑分析:因为不能超车,所以最后一辆车到达的时间一定是最慢的,用arrived计算所有车辆到达的最大值(每辆车到达的最大值curArrive = n/speed+(i) i是发车的顺序 ),花费的路程只需要用arrived-发车时间(m-1)即可)


战场索敌】(bfs算法:使用visited代表矩阵的每一个下标是否被访问过。循环矩阵,当遇到未被访问且不为‘#’的元素时,进入dfs算法;计算区域内E的数量是否<k如果<k,ans++;)