学习目标:
SSM框架项目实践,leetcode46
学习内容:
学习使用开发wangEditor文件上传功能,并且开发了新增、更新、删除图书的功能。
通过运送回溯算法的思想解决leetcode46问题:
package com.imooc.dddq.code; import com.sun.jmx.snmp.SnmpUnknownMsgProcModelException; import java.util.ArrayList; import java.util.List; public class L46 { public List<List<Integer>> permute(int[] nums) { List<List<Integer>> result = new ArrayList<>(); List<Integer> path = new ArrayList<>(); //辅助数组(标记哪些num时可以选择) int[] visited = new int[nums.length]; backtrack(result,nums,path,visited); return result; } /** * result=[] * def backtrack(路径,选择列表): * if 满足结束条件: * result.add(路径) * return * for 选择 in 选择列表: * 做选择 * backtrack(路径,选择列表) * 撤销选择 */ public void backtrack(List<List<Integer>> result, int[] nums, List<Integer> path, int[] visited) { if (path.size() == nums.length) { result.add(new ArrayList<>(path)); return; } for (int i = 0; i < nums.length; i++) { if (visited[i] == 1) { continue; } //做选择 visited[i] = 1; path.add(nums[i]); backtrack(result, nums, path, visited); //撤销选择 visited[i] = 0; path.remove(path.size() - 1); } } public static void main(String[] args) { int[] nums = {1, 2, 3}; System.out.println(new L46().permute(nums)); } }
学习时间:
08:10-11:40 15:00-17:00 18:00-19:00
学习产出:
完整开发了一个基于SSM框架与MybatisPlus框架的项目。