LeetCode 131. Palindrome Partitioning
Given a string s, partition s such that every substring of the partition is a palindrome.
Return all possible palindrome partitioning of s.
Example:
Input: “aab”Output:[ [“aa”,”b”], [“a”,”a”,”b”]]
题目链接
可以回溯法切割出来字串,然后判断是否为回文串
由于要找出来全部的字串,所有回溯的范围应该是全部遍历一遍。使用for循环进行横向的遍历,for循环结束的条件就是本层集合的个数(也就是树中孩子的数量),cur代表当前要切割的位置
for(int i=cur;i<s.length();i++)
然后进行纵向的遍历,每当切割出来一个回文串,就把其放入tmp中,然后进行回溯。否则跳过。
if(Ispalindrome(s,cur,i)){ string item=s.substr(cur,i-cur+1); tmp.pu ...
LeetCode 47 Permutations II
Given a collection of numbers, nums, that might contain duplicates, return all possible unique permutations in any order.Example 1:
Input: nums = [1,1,2]Output:[[1,1,2], [1,2,1], [2,1,1]]Example 2:
Input: nums = [1,2,3]Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Constraints:
1 <= nums.length <= 8-10 <= nums[i] <= 10
题目链接
这道题在全排列1上添加了重复的元素,所以剪枝的情况要多考虑一种。比如1,2,2’2,2’与2’,2其实是一种情况,所以要舍去。而对于重复的元素,一开始先排序是一个不错的选择。再排序完之后,如果当前元素和上一个元素相等并且上一个元素还没有被用过(但是后面一定会被用到造成重复),这样的时候就要考虑剪枝
i ...
LeetCode 46. Permutations
Given a collection of distinct integers, return all possible permutations.Example:
Input: [1,2,3]Output:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]
题目链接
看了看大佬们的讲解,终于自己做出来一道回溯的题。回溯大致分为三步:
终止条件:回溯到什么情况就可以加入答案列表
剪枝条件:什么情况下就可以停止回溯直接continue
回溯范围:如何将当前层和下一层联系起来继续递归下去
对于这道全排列的题,我们需要一个res保存答案,一个temp参与回溯,当达到终于条件也就是temp的大小与nums的相等时便把temp加入res中;然后需要一个check数组来标记使用过的元素,当一个数已经被使用过便把对应的位置的值设为1,这样避免了一个数重复使用多次。由于这道题是要列出所有的排列结果,所以需要全部遍历
代码如下:
class Solution {public: vector<vector&l ...
Java实现鲜花销售系统
描述项目环境
IDE:IDEA
数据库:Mysql 8.0.22
JDK:1.8
界面设计插件:JFormDesigner
登录界面顾客界面
后代管理界面
代码结构
源码链接
C_C++用宏定义简化for循环
记录一下for循环简化#define _for(i,a,b) for( int i=(a); i<(b); ++i)这样for(int i=0;i<10;i++)就简化为了
_for(i, 0, 10)
2021版王道数据结构课后代码题全部实现
历时2个多月,把21版王道数据结构的课后代码题全部实现了一遍,一共96道题
文件目录结构:
编程环境:Visual Studio 2019
编程语言:C/C++
其中,每道题都是一个独立的cpp文件,可以独立运行。在树和图的章节,会有输入样例和对应的示例图。
cpp文件结构
建立要求的数据结构
题目说明
题目要求的代码
运行示例
以树章节的题目示例:
#include <iostream>#include <stack>#include <queue>using namespace std;#pragma region 构造链式存储的表达式二叉树#define MaxSize 100#define ElemType char#define _for(i,a,b) for(int i=(a);i<(b);i++)typedef struct node { //树的结点 ElemType data[10]; node* left; node* right;}Node, * BiTree;void ...
使用Xpath和Requests实现爬虫并存储在Excel表里---爬取链家上杭州近期二手房价
爬的是杭州近期的的新房价
# encoding: utf-8"""@author: Ruvik@software: PyCharm@file: Spider_House.py@time: 2020/7/9 20:12"""# 爬一下链家网上杭州新房的价格import requests # 进行网络请求import xlwt # 与excel相关的操作from lxml import etree # 引入xpath库,方便定位元素import time # 进行访问频率控制import random # 随机数生成import re # 正则表达式# 主程序def main(): base_url = "https://hz.fang.lianjia.com/loupan/pg" # 最基 ...
如何使用微信小程序IDE在github上实现团队合作
——-原文——-(2020/4/16)
@TOC一.发起者要做的一些步骤
首先用IDE初始化本地的git仓库
使用github-desktop客户端添加这个新建的本地git库并同时上传到新建的远程仓库中
添加参与者PS:被邀请者的必须要接受邀请才可以
二.参与者需要做的步骤
在微信小程序开发者工具里添加远程仓库
绑定自己的github账号
三.如何线上合作
参与者在调试好了一些功能以后,提交到远程仓库的分支
参与者请求合并分支
在发起者经过了沉思熟虑,通计熟筹,仰观俯察后,同意合并分支的请求(@ ̄ー ̄@)从这里可以对比的看到分支和master的不同同意合并请求:这样就分支就合并进去了当然如果参与者想要同步最新的代码,只要pull一下就好了第一次接触github,如有一些错误,还请多多指教(๑•̀ㅂ•́)و