9/8力扣题目

1.分割得到回文字符串
<不会写 没思路 看题解写出来的>

在这里插入代码片

2.最少的弓箭击爆所有气球
<我竟然写出来了!!!激动!想到了算法课上安排会议室的例子>
注意:传递引用提高效率

class Solution {
public:

   static bool cmp(vector<int> & a,vector<int> & b)
    {
       return a[1]<b[1];
    }
    int findMinArrowShots(vector<vector<int>>& points) {
    sort(points.begin(),points.end(),cmp);
    int end=points[0][1],ans=1;
    for(int i=1;i<points.size();i++)
    {
        if(points[i][0] > end)
        {
            end=points[i][1];
            ans=ans+1;
        }
    }
    return ans;
    }
};
解决力扣题目不会做时,可以采用以下方法: - **深入理解题目分类及思路**:了解不同类型题目的解题方法。如动态规划是解决多阶段决策问题的方法,通过保存子问题的解来避免重复计算,常用于路径规划、背包问题;广度优先搜索通常用于图的遍历,从起始点开始逐步扩展搜索范围;深度优先搜索深入探索图或树,可用于遍历图或求解迷宫问题;贪心算法每一步都选择当前最优决策,期望得到全局最优解;双指针利用两个指针在数组或字符串中遍历;滑动窗口在数组或字符串上滑动固定大小窗口进行计算或查找;回溯用于解决组合、排列等问题;分治将问题分解为子问题分别求解再合并结果;快速选择用于在未排序数组中找第k小元素;排序包含冒泡排序、快速排序、归并排序等多种算法;计数排序适用于一定范围内的整数排序 [^5]。 - **参考优秀代码**:可以查看其他人的解题代码,例如用Java解决力扣题目最长公共前缀的代码,从中学习他人的思路和编程技巧 [^3]。 ```java class Solution { public String longestCommonPrefix(String[] strs) { String s = ""; if (strs.length == 0) return s; else { int temp = 99999999; for (int i = 0; i < strs.length; i++) { temp = Math.min(strs[i].length(), temp); } for (int i = 0; i < temp; i++) { boolean b = true; char c = strs[0].charAt(i); for (int j = 0; j < strs.length; j++) { char cc = strs[j].charAt(i); if (c != cc) { b = false; break; } } if (b == true) s += String.valueOf(c) + ""; else break; } return s; } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值