- Executors
-
Learn
Python Learning Hub Runnable examples, NumPy, pandas, and more C & C++ Learning Hub Pointers, memory, STL, and modern C++ C# Learning HubC# basics, OOP, LINQ, async, and .NET exercises Python Algorithms Search, sorting, recursion, and visualizers O(n) C & C++ Algorithms Compare algorithms implemented in C and C++
- Challenges
K-means finds groups in unlabeled data. Starting from the given centroids, repeat iterations times:
- Assign: put each point in the cluster of its nearest centroid (Euclidean distance). If two centroids are equally close, choose the one with the smaller index.
- Update: move each centroid to the average of the points assigned to it. A centroid with no points stays where it is.
Implement k_means(points, centroids, iterations).
Input
points: The data points, each a list of coordinates.
centroids: The k starting centroids, with the same number of coordinates.
iterations: How many assign-and-update rounds to run.
Output
Return the final centroids in their original order.
Constraints
1 ≤ number of points ≤ 1,000, 1 ≤ k ≤ 20, 1 ≤ dimensions ≤ 10
0 ≤ iterations ≤ 100
-1,000 ≤ each coordinate ≤ 1,000
Examples
Example 1
Input:
points = [
[1.0, 1.0],
[1.5, 2.0],
[8.0, 8.0],
[9.0, 8.5]
]
centroids = [
[0.0, 0.0],
[10.0, 10.0]
]
iterations = 1
Expected output:
[
[1.25, 1.5],
[8.5, 8.25]
]
Explanation
The first two points are nearer to (0, 0) and the last two nearer to (10, 10). The new centroids are the averages: ((1 + 1.5) / 2, (1 + 2) / 2) = (1.25, 1.5) and ((8 + 9) / 2, (8 + 8.5) / 2) = (8.5, 8.25).
Example 2
Input:
points = [
[0.0],
[1.0],
[10.0]
]
centroids = [
[0.0],
[100.0]
]
iterations = 2
Expected output:
[
[3.666667],
[100.0]
]
Explanation
Round 1: (100) is far from every point, so all three points join centroid 1, which moves to (0 + 1 + 10) / 3 ≈ 3.666667; centroid 2 gets no points and stays at 100. Round 2 assigns the same way, so the result is [[3.666667], [100]].
References
-
Example 1 Not runInput:
points = [ [1.0, 1.0], [1.5, 2.0], [8.0, 8.0], [9.0, 8.5] ] centroids = [ [0.0, 0.0], [10.0, 10.0] ] iterations = 1Expected output:[ [1.25, 1.5], [8.5, 8.25] ]Your output -
Example 2 Not runInput:
points = [ [0.0], [1.0], [10.0] ] centroids = [ [0.0], [100.0] ] iterations = 2Expected output:[ [3.666667], [100.0] ]Your output
4 hidden tests also run when you submit.
Online C# Compiler & Debugger
Write, compile, run, and debug C# code online. Set breakpoints, step into or over code, and inspect variables and nested objects in a full IDE with multiple files, saved workspaces, sharing, and live collaboration—no setup required.
🚀 350,747 total executions (1 this month)
Practice C# with coding challenges
Solve hands-on problems right in this editor: run the sample tests, submit, and get an AI code review.
🔷 About This C# / .NET Online Executor
The CodeUtility C# Executor lets you write and run real C# code directly in your browser - no installation, Visual Studio setup, or .NET SDK required. It’s powered by a secure sandbox that supports the .NET runtime and modern C# language versions, including C# 9 and later.
This tool uses dotnet-script under the hood to compile and execute your code with true .NET behavior, allowing you to experiment with both basic and advanced C# features like LINQ, async/await, pattern matching, and generics.
You can test simple scripts, functions, and logic flows, or explore concepts like classes, structs, inheritance, and interfaces - all in a clean, distraction-free coding environment.
Whether you’re learning C#, testing algorithms, or experimenting with .NET features, the CodeUtility C# Executor gives you a fast, secure, and reliable way to run C# code instantly from any browser.
More than a code runner
Use a multi-file editor, an isolated execution terminal, runtime-specific libraries, persistent workspaces, sharing, and real-time collaboration from the same executor.
How to use this executor?
Choose a runtime, open or create a file, write your code, and select Run. Output appears in the terminal, while signed-in users can keep files in a workspace, install libraries, and collaborate through shares.
- Select a version and edit the current file or open another workspace file.
- Run the code, provide input in the terminal when requested, and review saved run history.
- Use libraries, workspace tools, sharing, and chat when your task needs more than one snippet.
💡 C# Basics & Examples You Can Try Above
1. Declaring Variables and Constants
C# uses strongly-typed variable declarations. Use const for compile-time constants and readonly for runtime constants.
int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;
// Constants
const int MaxUsers = 100;
const string Company = "CodeUtility";
2. Conditionals (if / switch)
Use if, else if, and switch for control flow.
int x = 2;
if (x == 1)
{
Console.WriteLine("One");
}
else if (x == 2)
{
Console.WriteLine("Two");
}
else
{
Console.WriteLine("Other");
}
switch (x)
{
case 1:
Console.WriteLine("One");
break;
case 2:
Console.WriteLine("Two");
break;
default:
Console.WriteLine("Other");
break;
}
3. Loops
C# supports for, while, and foreach loops.
for (int i = 0; i < 3; i++)
{
Console.WriteLine(i);
}
int n = 3;
while (n > 0)
{
Console.WriteLine(n);
n--;
}
4. Arrays
Arrays store fixed-size collections of elements of the same type.
int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);
5. List Manipulation
Use List<T> for dynamic collections.
List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);
foreach (int n in nums)
{
Console.Write(n + " ");
}
6. Console Input/Output
Use Console.WriteLine and Console.ReadLine for basic I/O.
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");
7. Functions
Define methods using a return type, name, and parameters.
int Add(int a, int b)
{
return a + b;
}
Console.WriteLine(Add(3, 4));
8. Dictionaries
Dictionary<TKey, TValue> stores key-value pairs.
Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);
9. Exception Handling
Handle runtime errors using try, catch, and finally.
try
{
throw new Exception("Something went wrong");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
10. File I/O
Use File and StreamReader/StreamWriter for file operations.
File.WriteAllText("file.txt", "Hello File");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);
11. String Manipulation
C# strings support methods like Length, Substring, Contains.
string message = "Hello World";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));
12. Classes & Objects
C# supports object-oriented programming through classes and objects.
class Person
{
public string Name;
public Person(string name) => Name = name;
public void Greet() => Console.WriteLine($"Hi, I'm {Name}");
}
Person p = new Person("Alice");
p.Greet();