add some passed codes
This commit is contained in:
107
447-240108/main.cpp
Normal file
107
447-240108/main.cpp
Normal file
@@ -0,0 +1,107 @@
|
||||
#include<iostream>
|
||||
#include<vector>
|
||||
using namespace std;
|
||||
class Solution{
|
||||
public:
|
||||
int numberOfBoomerangs1(vector<vector <int>>& points){
|
||||
int points_size = points.size();
|
||||
int ans = 0;
|
||||
for(vector<int> firstpoint: points){
|
||||
for(vector<int> secondpoint: points){
|
||||
if(samePoint(firstpoint, secondpoint))continue;
|
||||
for(vector<int> thirdpoint: points){
|
||||
if(samePoint(secondpoint, thirdpoint) || samePoint(firstpoint, thirdpoint)) continue;
|
||||
if(distance(firstpoint, secondpoint) == distance(firstpoint, thirdpoint)){
|
||||
ans++;
|
||||
cout<<firstpoint[0]<<' '<<firstpoint[1]<<' '<<secondpoint[0]<<' '<<secondpoint[1]<<' '<<thirdpoint[0]<<' '<<thirdpoint[1]<<endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
int numberOfBoomerangs(vector<vector<int>>& points){
|
||||
int point_size = points.size();
|
||||
int ans =0;
|
||||
double dist[510][510];
|
||||
for(int i = 0 ; i < point_size ;i++){
|
||||
for(int j = 0 ; j < point_size ;j++){
|
||||
dist[i][j] = distance(points[i],points[j]);
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0 ; i < point_size ; i++){
|
||||
for(int j = 0 ; j < point_size ; j++){
|
||||
cout<<dist[i][j]<<' ';
|
||||
}
|
||||
cout<<endl;
|
||||
}
|
||||
/*
|
||||
for(int i = 0 ; i < point_size;i++){
|
||||
for(int j = i + 1 ; j < point_size ; j++){
|
||||
if(i == j) continue;
|
||||
for(int k = j + 1 ; k < point_size ; k++) {
|
||||
if(i == k || j == k) continue;
|
||||
if(dist[i][j] == dist[i][k]){
|
||||
ans += 2;
|
||||
cout<<points[i][0]<<' ' <<points[i][1]<<' '<<points[j][0]<<' '<<points[j][1]<<' '<<points[k][0]<<' '<<points[k][1]<<' '<<dist[i][j]<<' '<<dist[i][k]<<endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
for(int i = 0 ; i < point_size ; i++){
|
||||
sort(dist[i],dist[i]+point_size);
|
||||
int tmp = 1;
|
||||
for(int j = 0 ; j < point_size ; j++)
|
||||
cout<<dist[i][j]<<' ';
|
||||
cout<<endl;
|
||||
for(int j = 1 ; j < point_size ; j++){
|
||||
if(dist[i][j] == dist[i][j-1]){
|
||||
tmp++;
|
||||
}
|
||||
else{
|
||||
ans += tmp * (tmp-1);
|
||||
tmp = 1;
|
||||
cout<<i<<' '<<j<<' '<<tmp<<endl;
|
||||
}
|
||||
}
|
||||
ans += tmp * (tmp - 1);
|
||||
}
|
||||
return ans;
|
||||
}
|
||||
private:
|
||||
bool samePoint(vector<int> a, vector<int> b){
|
||||
if(a[0] == b[0] && a[1] == b[1])
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
double distance(vector<int> a, vector<int> b){
|
||||
double rlt = (a[0]-b[0])*(a[0]-b[0]) +(a[1]-b[1])*(a[1]-b[1]);
|
||||
|
||||
return sqrt(rlt);
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
Solution sol;
|
||||
vector<int> point1 = {0,0};
|
||||
vector<int> point2 = {1,0};
|
||||
vector<int> point3 = {-1,0};
|
||||
vector<int> point4 = {0,1};
|
||||
vector<int> point5 = {0,-1};
|
||||
vector<vector<int>> ex1 = {point1, point2, point3,point4,point5};
|
||||
cout<<sol.numberOfBoomerangs(ex1)<<endl;
|
||||
// vector<int> ex2_point1 = {1,1};
|
||||
// vector<int> ex2_point2 = {2,2};
|
||||
// vector<int> ex2_point3 = {3,3};
|
||||
// vecotr<int> ex2_point4 = {
|
||||
vector<int> ex2_point1 = {0,0};
|
||||
vector<int> ex2_point2 = {0,1};
|
||||
vector<int> ex2_point3 = {5,0};
|
||||
vector<int> ex2_point4 = {5,1};
|
||||
vector<vector<int>> ex2 = {ex2_point1, ex2_point2, ex2_point3,ex2_point4};
|
||||
cout<<sol.numberOfBoomerangs(ex2)<<endl;
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user